您的位置:首页 > 编程语言 > PHP开发

PHP基础学习函数总结和一些aoache和Nysql数据库总结

2017-06-05 23:05 741 查看
技术QQ交流群:294088839

一.   PHP的基本语法

1.PHP格式

Php脚本以<?php开始,以?>结束,纯php文件中

php每行代码都必须以分号结束

二.   PHP变量输出

echo() 函数输出一个或多个字符串他不是一个函数而是语言结构

print() 函数输出一个字符串他不是一个函数而是语言结构

print_r() 可以把字符串和数字简单地打印出来,而数组则以括起来的键和值得列表形式显示,并以Array开头

var_dump()判断一个变量的类型与长度,并输出变量的数值,如果变量有值输的是变量的值并回返数据类型

settype($var,$type)设置变量的属性类型

三.   变量的相关函数

intval($var)    获取变量的整数值

floatval($var)   获取变量的浮点值

isset($var)     检测变量是否设置

unset($var)     摧毁指定变量

is_array()      检测变量是否是数组

is_bool()       检测变量是否是布尔型

is_float()      检测变量是否是浮点型

is_int()        检测变量是否为整数

is_null()       检测变量是否为空

is_numeric()   检测变量是否为数字或者数字字符串

is_object()     检测变量是否是一个对象

is_resource()   检测变量是否为资源型

is_scalar()     检测变量是否是一个标量

is_string()     检测变量是否是字符串类型

in_array(被检测的变量,检测的数组)     检测数组中是否存在某个值

四.   可变变量

<?php

$a=’hello’;   普通变量

$$a=’word’;  可变变量

echo $hello;   输出word;

?>

五.   变量的引用赋值:一个变量值两个变量名

<?php

   $a=5;

   $b=&$a;

echo $b;    输出 5

?>

可以通过unset()取消变量引用

六.   超全局变量

$_SERVER  服务器和执行环境信息

$_GET     HTTPGET 变量

$_POST    HTTPPOST 变量

$_FILES    文件上传变量

$_SESSION session变量在服务端

$_COOKIE  cookie 变量在客户端

$_GLOBALS  引用全局作用域中的可用全部变量

七.   常量

define(‘常量名’,’常量值’);

constant() 读取常量的值如果常量名是一个变量的值可以用这个函数读取常量中的值

get_defined_constant() 获取已定义的常量列表

defined()           判断一个常量是否存在存在返回true

PHP_VERSION       服务器PHP版本号

__FILE__           返回当前文档的位置及名称

__DIR__           返回当前文档的位置

__LINE__          返回行号

__CALSS__         返回类名称

__METHOD__      返回方法名称

__FUNCTION__     返回函数名称

八.   函数

get_defined_functions()  返回所有定义的函数名

function_exists()        判断函数是否存在

func_get_args()        代替形参接收所有实参

func_num_args()       返回所有实参的个数

func_get_arg($n)       获取指定位置的参数

回调函数

call_user_func(回调函数名称,函数参数)

call_user_func_array(回调函数名,用数组表示函数参数)

九.   数组

count()          获取数组中的个数

array_values()    返回数组中所有的值并给其重新建立数字索引(下标)

array_count_values(array)  用于统计数组中值出现的次数,结果以数组的形式返回

current(array)         返回当前单元的值

key(array)            返回当前单元的下标

next()               返回下一个单元的值

prev()               返回上一个单元的值

end()                返回最后一个单元的值

reset()              返回初始单元的值

each()              以数组返回当前单元的下标

array_unshift(array)   将一个或者多个新元素插入到数组的开头,返回新数组元素的个数

array_push(array)     将一个或者多个新元素插入到数组的结尾,返回新数组元素的个数

array_shift()         删除数组中首元素,并返回被删除的元素的值

array_pop()         删除数组中最后一个元素,并返回被删除元素的值

array_splice(array,起始位置,length(长度),[‘替换数组’])  删除或者替换指定元素

array_slice(array,起始位置,length(长度),[bool])   在数组中取出一段值,true保留下标

array_rand(array,number(取出来的个数))       返回数组中的随机下标

shuffle(array)              数组中的元素按随机顺序重新排列

array_reverse(array,[bool])   将数组中的元素顺序反转,true保留下标

sort(array)   对数组按照键值升序排序

rsort(array) 对数组按照键值降序排序

asort(array) 对数组按照键值进行升序排序并保留键名

arsort(array)      对数组按照键值进行降序排序并保留键名

ksort(array) 对数组按照键名排序

krsort(array)      对数组按照键名逆向排序

natsort(array)    用“自然排序”算法对数组排序

natcasesort(array)          用“自然排序”算法对数组进行不区分大小写字母的排序

usort(array[,callback])       使用用户自定义的比较函数对数组进行排序

range(开始,结束)           创建一个数组

例:range(1,9)

array_merge(array1,array2…) 把一个或多个数组合并成一个新数组相同的下标会进行覆盖

array_merge_recursive(array1,array2…)把一个或多个数组合并成新数组不会把相同下标覆盖

array_diff(array1,array2…)  比较数组的值

array_diff_key(array1,array2…)比较两个数组的下标

array_diff_assoc(array1,array2…)  比较两个数组的键和值

array_keys(array)          获取数组中的下标

array_values(array)         获取数组中的值不保留下标

array_key_exists(下标,array)  检测下标是否在数组中

in_array(值,array)     检测数组中是否存在该值

array_unique(array)   删除数组中重复值

array_flip(array)      反转数组中的下标和值

array_search(value,array)  在数组中搜索某个值,并返回对应的下标

is_array()       判断是否为数组

explode(‘以什么进行分割’,string) 将字符串分割为数组

例:explode(‘.’,string);以点进行分割

implode(‘以什么进行分割’,array) 将数组元素组合为字符串

join() 为implode的别名

十.   数学函数库

abs ($number)    绝对值

round($value,[int$num])    四舍五入,第二个参数表示精确到小数点后的位数

ceil ($value)               向上进一取整

floor ($value)              向下舍一取整

rand ($min,$max)           生成随机数

mt_rand ($min,$max)       生成更好的随机数

pow ( number$base , number $exp )   幂运算

pi()                      获取圆周率,等同于常量M_PI的值

time()                    返回当前时间戳

microtime([true])           返回当前的时间戳和微秒数

mktime(小时,分钟,秒,月,日,年) 返回指定日期的时间戳

strtotime(time,[now]) 将任何英文文本的日期或时间描述解析为 Unix 时间戳

strtotime("now");获取现在的时间秒

strtotime("1970-01-01 00:00:00")获取1970到任意时间秒

strtotime("3 October 2005"); 获取1970年到那天的秒数

strtotime("+5 hours"); 获取现在时间加五个小时后的时间

strtotime("+1 week -10 years"); 获取1970年到现在时间的10年前少一周的时间秒数

strtotime("+100 weeks -2 years -3 months -2 days-4 hours -5 minutes -2 seconds")

strtotime("next Monday");获取现在时间加下一周的时间

strtotime("last month");获取现在时间加上个月的时间

getdate()                   取得日期/时间信息

date("Y-m-d H:i:s w t",time()) 格式化一个本地时间

常用参数:

Y:4位数年       y:2位数年m:月 01-12       n:月 1-12    d:天 01-31         j:天 1-31

H:时24时制h:小时12制 i:分钟 00-59  s:秒00-59  w:星期几 0-6   

W:年份中的第几周

A:上午AM或下午PM             a:上午am或下午pm

t:  月份总天数  28 到31         L : 是否为闰年如果是闰年为 1,否则为 0

ini_set()     设定用于一个脚本中所有日期时间函数的默认时区

例:int_set('date.timezone','PRC')

int_get('date.timezone');

date_default_timezone_set( );    设定用于一个脚本中所有日期时间函数的默认时区

如:date_default_timezone_set(“PRC”);    中国时区

世界标准时:UTC

中国标准时:PRC、Asia/Shanghai、Asia/Chongqing

date_default_timezone_get( ): -- 获取当前时区

十一.字符串的函数库

ltrim($var)  去除字符串左侧空格或其他字符

rtrim($var)  去除字符串右侧空格或其他字符

trim($var)   去除字符串左右两侧空格或其他字符

str_pad($var,length) 填充字符串

strtolower($var) 所有字母都转换成小写

strtoupper($var) 所有字母都转换成大写

ucfirst($var)     把字符串中的首字符转换成大写

ucwords($var)   把字符串中的每个单词的首字符转换为大写

nl2br($var)      函数在字符串的每个新行之前插入HTML换行符

htmlspecialchars($var) 把一些预定义的字符转换为HTML实体

htmlentities($var)  将所有的html特殊字符转换成相对应的实体字符

html_entity_decode($var)  将实体字符转换为相对应的html特殊字符

strip_tags()  删除字符串中的特殊字符

sha1()      sha1加密过后的字符串

md5()      md5加密后的字符串

strops($var,‘字符串’,’起始位置’) 查找字符串在另一个字符串中第一次出现的位置(对大小写敏感)

stripos()  查找字符串在另一字符串中第一次出现的位置(对大小写不敏感)

strrpos()  查找字符串在另一字符串中最后一次出现的位置(对大小写敏感)

strripos(string,find,[start])查找字符串在另一字符串中最后一次出现的位置(对大小写不敏感)

strstr($var,’字符串’) 寻找字符串最先出现在$var处起至结束的字符串返回

strrchr($var,’字符串’) 寻找字符串在$var最后出现的位置

substr($var,起始位置,长度)  截取字符串长度

起始位置:

正数 - 在字符串的指定位置开始

负数 - 在从字符串结尾开始的指定位置开始

0 - 在字符串中的第一个字符处开始

长度:

可选:

规定被返回字符串的长度。默认是直到字符串的结尾

正数 - 从 start 参数所在的位置返回的长度

负数 - 从字符串末端返回的长度

mb_substr($var,起始位置,长度,[汉字编码])

截取字符串中的一部分,可以用于中文截取

使用此函数需要在php.ini中开启相关扩展

extension_dir ="F:/wamp/php-5.4.45/ext"

extension=php_mbstring.dll

encoding:汉字编码,一般写为utf-8

str_replace(替换的字符,加上的字符,$var) 替换字符串中的一些字符(对大小写敏感)

str_ireplace()       替换字符串中的一些字符(对大小写不敏感)

substr_replace($var,加上的字符,从哪开始截取,长度) 把字符串的一部分替换为另一个字符串

chunk_split($var,长度,分隔符)  把字符串分割为一串更小的部分长度默认76,分隔符默认\r\n

str_split($var,长度)把字符串按照指定长度分割为数组,长度默认为1

explode(指定分隔符,$var)把字符串按照指定的分割符分割为数组

implode(指定分隔符,$var)  把数组元素按照指定的分隔符分割为字符串

join()   implode的别名

printf()   输出格式化后的字符串

sprint()   返回格式化后的字符串

strlen(string) 返回字符串长度

mb_strlen(string) 汉字长度一个汉字三个字节

substr_count($var,’字符串’)计算字符串在另一个字符串出现的次数

str_repeat($var,’指定的次数’)把字符串重复指定的次数

str_shuffle($var)  随机打乱字符串中的所有字符

strrev($var)      翻转字符串

十二.正则表达式

表达式的格式:'/表达式/[修正符]'

|   匹配坚线两边的任意一个原子

元字符“|”又称模式选择符。在正则表达式中匹配两个或更多的选择之一

例如:

在字符串“Thereare many apples and pears.”中,/apple|pear/在第一次运行时匹配“apple”;再次运行时匹配“ pear”。也可以继续增加选项,如:/apple|pear|banana|lemon/

[]   匹配方括号中的任意一个原子

原子表”[]”中存放一组原子,彼此地位平等,且仅匹配其中的一个原子。

例如:  如果想匹配一个”a”或”e”使用 [ae]。

例如:  Pr[ae]y 匹配”Pray”或者”Prey ”。

[^] 匹配除方括号中原子之外的任意字符

[^]”或者称为排除原子表,匹配除表内原子外的任意一个字符。

例如:/p[^u]/匹配“part”中的“pa”,但无法匹配“computer”中的“pu”因为“u”在匹配中被排除

[-]”用于连接一组按ASCII码顺序排列的原子,简化书写。

例如:/a[0123456789]/可以写成x[0-9],用来匹配一个由“a”字母与一个数字组成的字符串。

例如:/[a-zA-Z]/匹配所有大小写字母

  .     匹配换行符之外的任意字符 [^\n\r]

\d      匹配0-9的数字,相当于[0-9]

\D      匹配除0-9之外的任意字符,相当于[^0-9]

\s       匹配一个空白字符,相当于[\f\n\r\t\v ]

\S       匹配一个非空白字符,相当于[^\f\n\r\t\v ]

w       匹配任意一个数字、大小写字母和下划线字符,相当于[0-9a-zA-Z_]

\W      匹配任意一个非数字、大小写字母和下划线字符,相当于[^0-9a-zA-Z_]
{n}      其前面的原子连续出现n次

{n,}     其前面的原子至少连续出现n次

{n,m}    其前面的原子连续出现n到m次

*        其前面的原子至少出现0次,相当于{0,}

+        其前面的原子至少出现1次,相当于{1,}

?       其前面的原子出现0次或1次,相当于{0,1}

贪婪匹配:每次匹配最大个数

取消贪婪匹配:数量控制符后加上

^ 写在正则表达式最前面表示必须以什么开始

$ 写在正则表达式最后表示必须以什么结束

\A 与^作用相同

\Z与$作用相同

\b 匹配单词边界

\B 匹配非单词边界

()

将小原子变成大原子

小括号中的部分为一个子模式

反向引用\1\2  .......

可以在第一个括号后加上?:取消子模式

元字符“()”将其中的正则表达式变为原子(或称模式单元)使用。与数学表达式中的括号类似,“()”可以做一个单元被单独使用。

例如:

/(Dog)+/匹配的“Dog”、“DogDog”、“DogDogDog”,因为紧接着“+”前的原子是元字符“()”括起来的字符串“Dog”。

/You (very )+ old/匹配“Youvery old”、“Youvery very old”

/Hello (world|earth)/匹配“Helloworld”、“Helloearth”

一个模式单元中的表达式将被优先匹配或运算。

i    忽略大小写

s   让.可以匹配到换行符

x   忽略正则中空白字符

U  取消贪婪匹配

m 将字符串视为多行,在^和$时将会对每一行开始的结束进行匹配

e   替换时执行替换字符串中的语句

preg_match()       搜索字符串与pattern给定的正则表达式的一个匹配,返回匹配成功的次数,在第一次匹配结果后将会停止搜索。如果设置$array,则将搜索结果放到该数组中

preg_match_all($pattern,$str ,[&$array])将搜索出全部匹配结果

preg_grep ($pattern , $array[, $flags = 0 ] )

返回给定数组数组中与模式pattern匹配的元素组成的数组

flags 如果设置为PREG_GREP_INVERT,这个函数返回输入数组中与给定模式pattern不匹配的元素组成的数组

preg_replace ( $pattern ,$replace , $str , [$limit = -1])

搜索字符串中匹配pattern的部分,以replace进行替换

limit表示进行替换的最大次数。默认是-1(无限)

mixed preg_filter ($pattern, $replace ,  $str , [$limit = -1])

preg_filter()等价于preg_replace()

在对数组元素进行匹配时仅仅返回与目标匹配的结果

limit表示进行替换的最大次数。默认是-1(无限)

preg_replace_callback($pattern, $replace ,  $str , [$limit = -1])

这个函数的行为除了可以指定一个callback 替代replacement 进行替换字符串的计算,其他方面等同于preg_replace()

preg_split ($pattern , $str , [$limit = -1 ] )

按正则表达式分隔字符串

如果指定limit将限制分隔得到的子串最多只有limit个,返回的最后一个子串将包含所有剩余部分。limit值为-1 ,0或null时都代表"不限制"

十三.文件系统函数

filetype()  获取文件类型

在Windows系统中只能获得”file”、”dir”或者“unknown”三种文件类型。

在LINUX系统中可以获得block、char、dir、fifo、file、link和unknown七种类型

is_dir()  判断文件是否是目录

is_file()  判断文件是否是普通文件

file_exists()    检测目录是否存在

basename() 返回路径中的文件名部分

dirname()   返回路径中目录的部分

pathinfo()   返回文件路径的信息

realpath()   返回规范化的绝对路径名

 

 

遍历目录的相关函数

1)opendir(路径) 打开目录

2)readdir(资源)  从目录中读取条目返回当前目录指定的文件名

3)closedir(资源)  关闭目录

rewinddir(resource dir_handle) 倒回目录将dir_handle指定的目录流重置到目录的开头

disk_free_space()   返回目录的可用空间

disk_total_space()   返回一个目录的磁盘大小

mkdir()           创建目录

rmdir()            删除目录

unlink()           删除文件

删除必须要从里往外删除

touch()         文件不存在时会创建文件

copy()          复制文件

rename()        重命名文件或者目录

fopen(filename,mode)          打开文件或者URL路径

mode参数指定了所要求到该流的访问类型

'r' 只读方式打开,将文件指针指向文件头。

'r+' 读写方式打开,将文件指针指向文件头。

'w' 写入方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

'w+' 读写方式打开,将文件指针指向文件头并将文件大小截为零。如果文件不存在则尝试创建之。

'a' 写入方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之。

'a+' 读写方式打开,将文件指针指向文件末尾。如果文件不存在则尝试创建之

fclose()关闭一个一打开的文件

fgetc()  从文件中读取一个字符

fgets()   从文件中读取一行字符

fread(文件名,length)  从文件中读取多个length个字节

feof()          检测文件指针是否到了文件的结束位置

fwrite(文件,string,length)把string的内容写入文件如果指定lengthth当写入了length个字节或者写完了string以后,写入就会停止

readfile()  读取一个文件并写入到输出缓冲中,返回文件中读取的字节不用打开目录

file_get_contents() 将整个文件读入一个字符串可以存一个变量中

file_put_contents(文件名,字符串) 将一个字符串写入文件

ftell()   返回文件指针读写的位置

fseek()  在文件指针中定位

在与handle关联的文件中设定文件指针位置。新位置,从文件头开始以字节数度量,是以whence指定的位置加上offset。whence的值定义为:

SEEK_SET - 设定位置等于offset字节。

SEEK_CUR - 设定位置为当前位置加上offset。

SEEK_END - 设定位置为文件尾加上offset。(要移动到文件尾之前的位置,需要给offset传递一个负值。)

如果没有指定whence,默认为 SEEK_SET。

成功则返回0;否则返回 -1。注意移动到 EOF 之后的位置不算错误

rewind()    倒回文件指针的位置

flock (handle, operation )  文件锁定

要取得共享锁定(读取程序),将operation设为LOCK_SH

要取得独占锁定(写入程序),将operation设为LOCK_EX

要释放锁定(无论共享或独占),将operation设为LOCK_UN

如果你不希望flock()在锁定时堵塞,则给operation加上LOCK_NB

move_uploaded_file($tmp_name,$destination(目录路径))将临时文件移动到指定目录

$_FILES["myfile"]["name"]  文件的名称

$_FILES["myfile"]["type"]   文件的类型

$_FILES["myfile"]["size"]    文件的字节的大小

$_FILES["myfile"]["tmp_name"]上传后在服务器存储的临时路径

$_FILES["myfile"]["error"]文件上传的错误代码

UPLOAD_ERR_OK,其值为0,代表上传没有产生错误

UPLOAD_ERR_INI_SIZE,其值为1,代表上传文件字节数超过PHP配置文件upload_max_filesize所规定的字节数

UPLOAD_ERR_FORM_SIZE,其值为2,代表上传文件字节数超过表单隐藏域(MAX_FILE_SIZE)规定的字节数

UPLOAD_ERR_PARTIAL,其值为3,代表文件部分被上传

UPLOAD_ERR_NO_FILE,其值为4,代表没有选择上传文件

UPLOAD_ERR_NO_TMP_DIR,其值为6,代表没有临时目录

UPLOAD_ERR_CANT_WRITE,其值为7,代表临时目录不可写

file_uploads=On    支持HTTP上传

upload_tmp_dir临时文件存放目录

post_max_size=8M  POST方式发送数据的最大值

upload_max_filesize=2M允许上传文件的最大值

max_file_uploads=20允许一次上传的最大文件数

maxt_input_time=60  上传允许执行的最大时间

max_execution_time=30脚本执行允许的最大时间

memory_limit=128单线程最大独立内存使用量

is_uploaded_file($temp_name)  检测是否为HTTPPOST方式上传

getimagesize($filename)  检测是否为真实图片类型

利用php脚本来下载

html部分

<a href="download.php?filename=dance.gif">跳舞图片</a>

php部分

$filename=$_GET['filename'];

header("Content-Disposition:attachment;filename=".basename($filename));

//指定作为附件处理,并设置文件名

header("Content-Length:".filesize($filename)); //指定文件的大小

readfile($filename); //将内容输出下载

十四.GD2函数库处理

使用phpinfo() 函数可以查看当前安装的 GD 库的信息

使用 gd_info() 函数可以查看当前安装的 GD 库的信息

画布=imagecreatetruecolor( $width (宽),$height(高))  

imagecolorallocate (画布,红,绿, 蓝) 为图像分配颜色,0-255

imagecolorallocatealpha(画布,红,绿, 蓝,透明度)为图像配置颜色+透明度(0-127),保存时需图像格式支持透明度

imagefill(画布, x坐标, y坐标,颜色)image 图像的坐标 x,y(图像左上角为 0, 0)处用 color 颜色执行区域填充

imagesavealpha( resource $image , bool $saveflag )

设置标记以在保存PNG 图像时保存完整的 alpha 通道信息

imagesetpixel(画布,x坐标,y坐标,颜色)  绘制单个像素点

imageline(画布,x1,y1,x2,y2,颜色) 绘制线段两点确定一条线

imagerectangle (画布,x1, y1,x2, y2,颜色)画一个矩形

imagefilledrectangle (画布,x1, y1,x2, y2,颜色)画一矩形并填充

imagepolygon (画布,array(x1,y1,x2,y2,x3,y3),点的总数,颜色)画一个多边形

imagefilledpolygon (画布,array(x1,y1,x2,y2,x3,y3),点的总数,颜色)画一个多边形并填充

imageellipse (画布,圆心(x1,y1),宽,高,颜色)画一个椭圆

imagefilledellipse (画布,圆心(x1,y1),宽,高,颜色)画一个椭圆并填充

imagearc (画布,圆心(x1,y1),宽,高,起始点(s),结束点(e),颜色)画椭圆弧

imagefilledarc ((画布,圆心(x1,y1),宽,高,起始点(s),结束点(e),颜色,style) 画一椭圆弧且填充

style可以是下列值按位或(OR)后的值:

IMG_ARC_PIE           IMG_ARC_CHORD

IMG_ARC_NOFILL            IMG_ARC_EDGED

输出图像到浏览器

输出图像必须写这个表头

header("Content-type:image/png|jpeg|gif");

imagejpeg(画布,’文件名或文件路径’);  jpeg格式

imagepng(画布,文件)                png格式

imagegif(画布,文件)                 gif格式

imagedestroy(画布)    销毁图像资源,释放内存

imagechar(画布,文字大小(1-5),x,y,’写的字符’,颜色) 水平绘制单个字符  fontsize范围1-5

imagecharup(画布,文字大小(1-5),x,y,’写的字符’,颜色) 垂直绘制单个字符

imagestring(画布,文字大小(1-5),x,y,’写的字符’,颜色) 水平绘制字符

imagestringup(画布,文字大小(1-5),x,y,’写的字符’,颜色)  垂直绘制字符

imagettftext(画布,字体大小(可以写小数),角度,x坐标,y坐标,颜色,字体路径,写的文字)  使用TrueType字体绘制文本

getimagesize(文件名);判断文件真假

image_type_to_extension(文件名,[false]);取得图像类型的文件后缀,可选项设为false则所取后缀名不包含点

由图片文件创建图像资源生成画布:

imagecreatefromjpeg(文件路径)  jpeg格式

imagecreatefrompng(文件路径)  png格式

imagecreatefromgif(文件路径)  gif格式

拷贝并合并图像:

imagecopymerge (打水印的图像,水印图像,放水印图像的起始位置(x,y),打水印的图像的位置(x,y一般为(0,0)),水印图像的宽,水印图像的高,透明度)  透明度的值是1-100

重采样拷贝部分图像并调整大小:

imagecopyresampled(目标图像,源图像,源图像截取x坐标,源图像截取y坐标(一般为0,0),目标图像截取x坐标,目标图像截取y坐标,创建画布的宽,创建画布的高,源图像截取的宽,源图像截取的高)

十五.MySQL数据库

net start mysql 启动mySQL

net stop mysql  停止mySQL

登录:  mysql -hlocalhost -P3306 -uroot -p

-h  mysql服务器ip

-P  mysql端口号

-u  用户名

-p  密码

退出

exit

quit

\q

修改mysql提示符

\D 完整的日期

\d 当前数据库

\h 服务器名称

\u 当前用户

将查询后的数据立起来:\G

取消当前未完成的操作:\c

退出当前客户端:\q

显示当前服务器状态:\s

显示帮助信息:\h(同help命令)

avg() 平均值

count() 总记录数,不包括null

max()最大值

min()最小值

sum()求和

now()

curdate()

curtime()

unix_timestamp()

from_unixtime()

ABS()绝对值

ceil() 向上取整

floor 向下取整

round() 四舍五入

rand() 随机数

mod() 取余

concat()连接字符串

replace()替换

ucase()  大写

lcase()   小写

ltrim()   去左侧空格

rtrim()   去右侧空格

trim()    去两边空格

password()  加密函数

md5()      加密函数

database()  当前数据库

user()      当前用户

version()    当前mysql版本

增加(Create)操作

修改(Update)操作

查询(Read)操作

删除(Delete)操作

SQL语句分类

DDL(数据定义语言): create、drop、alter、truncate

DQL(数据查询语言): select、show

DML(数据操作语言): insert、update、delete

DCL (数据控制语言): grant、revoke、begin transaction、commit、roolback

create database[if not exixts] 库名 [[default] character set 编码方式]

查看数据库

show databases      查看MySQL下有哪些数据库

show create database 库名查看某个数据库的详细信息

修改数据库

alter database 库名[default] character set 编码方式

删除数据库

drop database [ifexists] 库名

操作数据表之前需要先打开数据表所在的数据库

use 库名

添加数据表

create table[if not exists] 表名(

字段名数据类型  [约束],

字段名数据类型  [约束],

......

字段名数据类型  [约束]

)[ENGINE=MyISAM DEFAULT CHARSET=utf8 collateutf8_general_ci] ;

查看数据表

show tables   查看当前数据库下有哪些数据表

show create talbe表名查看建表信息

desc 表名查看表结构

修改数据表

增加字段

alter table 表名add [colum]字段名数据类型[约束]

修改字段名

alter table 表名change 字段名新字段名数据类型[约束]

删除字段

alter table 表名drop [colum]字段名

更改表名

alter table 表名rename  [to]新表名

删除数据表

drop table  表名

非空约束not null

主键约束primary key

唯一约束unique key

默认约束default

外键约束foreign key

增加约束

除外键约束外的其它约束

alter table 表名 change 字段名新字段名数据类型约束

ALTER TABLE 表名 ADD UNIQUE/PRIMARY KEY(字段名称)

外键约束

alter table 表名 add [constraint [约束名]]  foreign key (外键字段名)  references 被参照表 (被参照字段名)

删除约束

删除唯一约束

Alter table表名drop index 字段名

删除主键约束

Alter table表名dropprimary key

如果主键列存在自增长约束,删除主键约束前必须先删自增长约束

删除外键约束

Alter table表名dropforeign key约束名

插入多条记录

INSERT INTO表名[(字段名1,字段名2,…字段名n)]VALUES

(‘值1’,‘值2’,…,‘值n’),

(‘值1’,‘值2’,…,‘值n’),

......

(‘值1’,‘值2’,…,’值n’);

根据条件删除记录
delete from 表名 [where条件子句]
[order by字段
asc|desc ] [limit 条数]

在WHERE子句中,条件可以由一个或多个逻辑表达式组成,
在WHERE子句中,可以通过逻辑操作符和比较操作符指定基本的表达式条件
删除全部记录

truncate table 表名

根据条件更新记录
update 表名 set 
字段名=新值,字段名=新值,.......
[where 条件子句][order by
字段asc|desc
][limit 条数]

单表查询
select 字段1,字段2,...... from表名[where条件子句][group
by字段][having条件子句][order by字段][limit[起始值]条数]

distinct 去重复

关键词 DISTINCT 用于返回唯一不同的值

    SELECT DISTINCT 字段名称 FROM 表名称

多表插入

将查询到的记录插入到已存在的表中

insert  表名(字段列表) select语句

创建新表并将查询到的记录插入到新表中

create  表名[(

字段名 数据类型 [约束],

............

)]  select 语句 ;

多表更新

update 表1 [[as] 别名] inner join 表2 [[as] 别名] on 连接条件 [where 条件语句] set 表1.字段=表2.字段,......
多表删除

delete 表名 from数据表参照关系
where 语句
多表查询

select 字段列表 from表1,表2,表3......
where连接条件1and连接条件2
 ....... 
数据库的备份还原

mysqldump -h服务器-P端口 
-u用户名-p密码 数据库名称
>备份文件路径
source 备份文件路径

十六.PHP操作mysql

mysql_connect(连接数据库的ip:3306,mysql数据库的账号,mysql数据库的密码)

mysql_errno([$link]); 中括号中的内容可以省略返回错误号

如果为发生任何错误,此函数会返回0

返回错误信息

string mysql_error([$link]);

排查mysql数据库的错误信息可以用or die(...错误号.mysql_errno(),错误信息.mysql_error())来进行连接;

选择数据库

bool mysql_select_db('数据库的名字',[$link])

4.设置客户端汉字编码

bool mysql_set_charset('utf8',[$link])

5.执行SQL语句

mixed mysql_query(select(查看表内容)\show(tables查看数据库\createtabel查看建表)\desc(查看表结构)\insert(添加记录)\update(更新)\dalete(删除))

处理资源结果集

1.获取结果集包含的记录数目

int mysql_num_rows($表里记录信息变量)

2.获取表里的内容以索引数组返回值

array mysql_fetch_row($表里的记录信息变量)

3.获取表里的内容以关联数组返回值

array mysql_fetch_assoc($表里的记录信息变量)

4.获取结果集中字段的数目

int mysql_num_fieds($result)

5.返回结果集中某行记录的某个字段值(默认为首字段)

mysql_result($result, int $row)

int值是从0开始的0 拿某个字段的值

$row写字段名

处理非查询语句

1.获取插入时受影响行的行数

int mysql_affected_rows()

2.获取插入时最后插入记录的主键id

int mysql_insert_id()

六.释放结果集资源

1.如果是执行的事查询SQL语句查询后必须要释放资源

bool mysql_free_result();

2.使用完数据库后要关闭数据库

bool mysql_close();

十七.PHP的回话控制

一.会话跟踪的方式

1.使用url将用户的信息状态传到另一面

2.使用cookie将用户的信息状态,存放在客户端的计算机中

3.使用session将用户的信息状态,存放在服务端的计算机中

二.设置cookie

bool setcookie('cookie的名字','cookie的值',cookie的存活时间一般默认为0,当浏览器关闭就会消失或者time()*70设置他存活的时间,'/'cookie的根目录)

还有写些可写可不写的值

domain 域名设置cookie的有效域名

secure 指明cookie只能通过安全的https传送设置为true只能通过安全的https,默认是false

三.获取cookie

使用超全数组$_COOKIE即可获取cookie

例:输出cookie中的所有信息

print_r($_COOKIE);

输出cookie中其中一条信息

echo $_COOKIE['信息的名字'];

四.删除cookie

只用把cookie的时间设置过期就行

setcookie('cookie名',null,time()-1);

五.设置session

1.首先先要启动session

session_start() 开启session

在这个函数执行前不能有任何的输出

2.设置session

$_SESSION['名称']='值'

3.获取session,通过超全局变量来取值

$_SESSION['名称'];

六.销毁session

1.清除内存中由session数组保存的变量

unset($_SESSION['名称'])

清除所有变量可以使用$_SESSION=array()

常量session_name()可以拿到session声明的名字

常量session_id()可以拿到session声明名字后面的值

2.删除客户端的cookie保留的session_id

setcookie(session_name,null,time()-1);

3.删除服务端保留的session信息的文件(一般不使用他)

session_destroy()

七.session的垃圾自动回收机制

php.ini中相关的配置

session.cookie_lifetime=0; 关闭浏览器相应的session失效

session.gc_maxlifetime;设置过期session时间,默认1440秒

session.gc_probability/session.gc_divisor;启动垃圾回收机制的概率(建议值为1/1000~5000)

 

八.sessionID的传递

通过cookie传递Session ID

通过url传递session ID

1.windows服务器下通过url传递常量SID

2.linux服务器下编辑PHP时,如果使用了—enable-trans-sid配置选项,和运行时选项session.use_trans_sid都被激活

在客户端禁用cookie时,相对的url将被自动修改为包含sessionid.

其他
一.虚拟主机的配置

1.修改hosts文件配置IP和域名的对应关系

C:\Windows\System32\drivers\etc\hosts

自己电脑的Ip域名(任意写域名但是只能在本机访问)

2.修改apache配置文件httpd.conf开启虚拟主机的配置文件

E:\php\PHP\apache\conf\httpd.conf 第469行

3.修改httpd-vhosts.conf配置虚拟主机

E:\php\PHP\apache\conf\extra\httpd-vhosts.conf

NameVirtualHost 172.16.26.100(自己主机ip地址):80

<VirtualHost www.yhshop.com(自己在hosts改的域名):80>

    DocumentRoot"E:/Public/yhshop(访问的网页的根目录)"

    ServerNamewww.yhshop.com(域名)

下面的内容可有可不有

<Directory "E:/Public/yhshop">

         OptionsFollowSymLinks IncludesNOEXEC Indexes

        DirectoryIndex index.php

        AllowOverride Options FileInfo

         OrderAllow,Deny

         Allowfrom all

</Directory>

</VirtualHost>

4.重启apache

二.PHP配置:

A、安装Apache

B、安装PHP(只需要将压缩包解压到相应的位置即可)

C、PHP配置

将php.ini-dist更名为php.ini

修改486行:extension_dir ="D:/php-5.2.6/ext"

D、配置Apache配置文件httpd.conf

#加载PHP模块

LoadModule php5_module"D:/php-5.2.6/php5apache2_2.dll"

#PHP配置文件所在位置

PHPIniDir"D:/php-5.2.6"

#哪些类型的文件将交由PHP引擎处理

AddType application/x-httpd-php.php

E、重启Apache

1)用于中文字符串截取:

extension=php_mbstring.dll

2)用php图像处理函数需要加载GD支持库,开启GD库扩展:

编辑PHP配置文件 php.ini

extension_dir ="F:/wamp/php-5.4.45/ext"

extension = php_gd2.dll

3)php通过MySQL函数库操作数据库:

编辑PHP配置文件 php.ini

extension_dir = "F:/wamp/php-5.4.45/ext"

启用extension=php_mysql.dll选项

4)php使用执行运算符反引号(``)时,需要关闭PHP配置文件的safe_mode选项:

safe_mode = Off

5)修改php默认时区:

修改PHP的默认时区有三种方式:

1、修php.ini配置文件:

date.timezone = Etc/GMT+8

2、ini_set(): -- 设定用于一个脚本中所有日期时间函数的默认时区。

int_set('date.timezone','PRC')

int_get('date.timezone');

3、date_default_timezone_set(): -- 设定用于一个脚本中所有日期时间函数的默认时区。

如:date_default_timezone_set(“PRC”);//中国时区。

世界标准时:UTC

中国标准时:PRC、Asia/Shanghai、Asia/Chongqing

date_default_timezone_get( ): -- 获取当前时区

三.Apache配置:

安装并配置Apache:

A、安装Apache

B、修改httpd.conf配置文件

a)修改第177行重新设置文档根目录

DocumentRoot "D:/ftp/Public/www"

b)修改第244行将网站目录与文档根目录设为一致

<Directory "D:/ftp/Public/www">

c)修改第187行设置网站根目录访问权限

<Directory />

         Options FollowSymLinks

        AllowOverride None

         Orderallow,deny

          Allow from all

</Directory>

d)修改第240行设置网站默认文档(如果设置的html文档不存在,则会列出网站根目录下的所有文件)

例:DirectoryIndex    abc.html

C、重启Apache

四.MySQL配置:

1.windows下安装推荐使msi安装包

2.mySQL的数据表存放在data目录下

3.mySQL配置文件为my.ini

port=3306  //端口

default-character-set=gbk  //客户端汉字编码

character-set-server=utf8   //服务端汉字编码

default-storage-engine=INNODB  //默认存储引擎

4.启动mySQL

net start mysql

5.停止mySQL

net stop mysql

2)开启MySQL函数库:

PHP可以通过MySQL函数库来操作数据库

开启mysql扩展

编辑PHP配置文件 php.ini

extension_dir ="F:/wamp/php-5.4.45/ext"

启用extension=php_mysql.dll选项

php5.4还需要将sql.safe_mode设为 Off

五.PHP文件表头设置

//设置汉字编码

header("Content-Type:text/html;charset=utf-8");

//设置时区

date_default_timezone_set("PRC");

//开获取传过来的文件名,主要是图片

$filename=$_GET['filename'];

//指定作为附件处理,并设置文件名下载图片

header("Content-Disposition:attachment;filename=".basename($filename));

//指定文件的大小

header("Content-Length:".filesize($filename));

//直接输出文件

readfile($filename);

//结束

//忽略所有的警告内容(只忽略NOTICE的内容);

error_reporting(E_ALL && ~E_NOTICE);

?>

<!--引进外部的CSS,或者js文件-->

<link rel="stylesheet"type="text/css" href="css/public.css">

<link rel="stylesheet"type="text/css" href="css/index.css">

<!--引进一个打开页的小图像-->

<link rel="shortcut icon"href="./favicon.ico">

六.截取后缀名的方法

1.ltrim(strrchr($fileName,'.'),'.');

strrchr(文件名,’.’)已点最后出现位置开始知道文件名末尾

ltrim(文件名,’.’)  已点开始删除左边的字符串

2.$arr=explode('.',$fileName);

return end($arr);

explode(‘.’,文件名)已点开始分割一个字符串为数组

end(文件名)   取数组中的最后的值

3.$pos=strrpos($fileName,'.')+1;

returnsubstr($fileName,$pos);

strrpos(文件名,’.’)+1返回文件名到点出现加1的位置

substr(文件名,$pos)已这个位置截取后面的字符串

4.$arr=explode('.',$fileName);

returnarray_pop($arr);

explode('.',$fileName);已点开始分割一个字符串为数组

array_pop($arr);返回数组中最后一个值

5.这个只能获取图片的后缀名。

//获取图片的信息

$imgInfo=getimagesize($filename);

//获取这个图片的后缀名

$ext=image_type_to_extension($imgInfo[2],false);

根据给定的常量IMAGETYPE_XXX返回后缀名。

七.退出脚本和文件包含

1.break 用于退出循环或者跳出这个循环,循环结束

2.continue 用于终止本次循环,并且继续执行这个循环到结束为止

3.exit和die

只要执行exit语句,不管在那个控制流程,都会直接退出当前的脚本。

die是exit的别名。

5.设置包含文件的默认路径

系统常量

例:

define('ROOT',str_replace('\\','/',dirname(__FILE__)));      //网站根目录绝对路径E:\...

define('PUBLIC_DIR',ROOT.'/public');                     //public目录绝对路径 E:\....

define('UPLOAD_DIR',ROOT.'/public/upload');             //文件上传的保存目录

set_include_path(get_include_path().PATH_SEPARATOR.PUBLIC_DIR.PATH_SEPARATOR.PUBLIC_DIR.'/libs');

6.文件的包含语句

include 包含文件如果被包含的文件没找到会发出一个警告,不会影响后面代码的执行

include once 对重复包含的文件,只会引入一次

require 如果被包含的文件没找到,会发出一个致命错误,后面的代码不会被执行

require once 对重复包含的文件只会引入一次。

八.数据库的主流软件

主流的软件开发中应用数据库有IBM的DB2,Informix,Oracle,Sybase,SQL Server,PostgreSQL,MySQL,Access,FoxPro和Teradata等。

九.提供80端口的服务器

Apache  

 

 

十.有几种页面跳转方式

Js跳转方式

open(url,打开方式(_self当前页面打开_blank在新页面打开_top在整个页面打开))

location=“url路径”

href=”url路径”

replace(url路径)

php跳转

header(“Location:url路径”)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: