php基础2

PHP即“超文本预处理器”,是一种通用开源脚本语言。PHP是在服务器端执行的脚本语言,与C语言类似,是常用的网站编程语言,使用广泛,主要适用于Web开发领域, 可植入性强、拓展性强。

PHP数组

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
把若干变量按有序的形式组织起来的一种集合
数组中存的是多个内容,数组的内容叫做元素 每个元素都是由 键(key下标)和值(value)组成
数组的分类
1.索引数组 下标是数字的
2.关联数组 下标是字符串 能体现该单元的内容
下标默认是从0开始 自动增长的下标都是出现过的最大值加1 关联数组的字符串下标不会影响
索引下标的增长规则 下标重复则后面覆盖前面的值
如果键是浮点数 则转成整数,如果字符串的内容恰好也是整数则理解为整数
ex:
$arr3=array(2=>'非',2.5=>'凡','2.5'=>'软','2'=>'件');
print_r($arr3);//Array([2]=>'件',[2.5]=>'软')
$arr3=array(2=>'非',2.5=>'凡','2.5'=>'软','2'=>'件','2x'=>'逗');
print_r($arr3);//Array([2]=>'件',[2.5]=>'软',[2x]=>'逗')
0.使用数组标识符[]声明
$arr=["aaa",11,2=>22,"bbb"] //适用于php5.4以后
2.使用array()函数声明
$arr=array("aaa",2=>"bbb","one"=>"ccc")
3.直接一个个赋值声明
删除数组中的某个元素unset()但数组不会重建索引,使用array_values()函数重建索引
二维数组:数组元素的本身仍是数组
访问二维数组中的某个元素 $arr[2]["age"]
数组的长度或个数count($arr) count($str)如果是字符串无论是否为空都返回int 1
数组的遍历
1.使用for循环遍历数组 只针对递增的索引数组
一定是下标连续的索引数组,不能遍历关联数组,操作的是数组的一个备份
2.使用foreach遍历数组
foreach(数组 as 值变量){}
foreach(数组 as 下标变量=>值变量){}
3.使用list()函数遍历数组 用数组的值为多个变量赋值
list($name,$age,$sex)=arr("zhang","25","男");
a.list右边只能是一个数组,参数必须是变量,不能是值
b.只能将下标是从0开始且连续的索引数组转为变量
c.可以在list()参数中通过空项选择性的接收数组元素
4.使用each()函数遍历
each($arr);参数是一个数组,返回的值也是一个数组固定有四个元素
array(1=>"zhang","value"=>"zhang",0=>"name","key"=>"name")
each()只处理当前指针所在的位置, 处理完后指向下一个元素,如果
已经到结束为止了,则返回false
5.使用each listwhile遍历
while(list($key,$value)=each($arr)){ echo $key,"--",$value }
数组的指针
next()将指针向后移动一个元素,prev()将指针向前移动一个元素
key()获取当前指针位置,current()获取当前指针所对应的值
end()将指针指向数组最后一个元素并将其取出来,reset()将指针移至第一个索引的位置
超全局数组(变量) 页面的任何位置都可以访问
$_SERVER 包含头信息 路径和脚本位置的数组
$_ENV $GLOBALS $_FILES
$_GET 接收用户通过URL向服务器传的参数 $_POST 接收用户通过http协议向服务器传的参数
$_COOKIE $_SESSION $_REQUEST
获取IP地址 $_SERVER["REMOTE_ADDR"] 获取端口号 $_SERVER["REMOTE_PORT"]
操作数组的函数
a.数组的键/值操作
1.array_values() 返回数组中所有元素的值
1. count($arr) 获取数组的长度
2. array_key_exists($key,$arr) 判断数组中是否存在某个键
3. in_array("字符",$arr,true) 判断数组中有没有某个元素,true类型和值都必须相同,
区分大小写,若是数组顺序也要相同
4. array_filp($arr) 交换数组中的键和值 键和值必须是整型或字符串,不能是其他类型
原数组不改变
5. array_reverse($arr,true)将数组反向 true(保留原来的键名只对索引数组有效)原数组不变
array_filter($arr,"函数")过滤数组中的单元,若无函数则删除所有等值为false的单元
sort()对数组按升序排列 rsort()对数组按降序排列 (不保留下标)
ksort()对数组按照键名升序排列 krsort()对数组按照键名降序排列
asort()对数组进行排序并保持索引关系 asort()对数组进行降序排序并保持索引关系
natsort()按自然排序算法对数组进行排序 natsort()按自然排序算法对数组不区分大小写排序
array_multisort()对多个数组或多维数组进行排序
array_pop将数组最后一个单元弹出(出栈) array_push将一个或多个单元压入数组末尾(入栈)
array_shift将数组开头的单元移除(出列) array_unshift在数组开头插入一或多个单元(入列)
array_sum() 求所有数组元素的和 max() 返回数组的最大值 min() 返回数组的最小值
array_product() 返回所有数组的乘积
注: array_push() array_unshift() 返回数组的长度 原数组改变
数组的合并
可以使用+或array_merge()
使用+合并 会把最先出现的值作为最终结果返回
当键名为数字时,array_merge()不会覆盖掉原来的值,而是附加到后面
当键名为字符时它会覆盖前面的值
注意:数字键形式 '数字' 等价于 数字

PHP字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
单引号和双引号的区别
a.在双引号中可以解析变量(变量被自动替换成数值),而在单引号中不能解析变量
(按普通字符数出)
b.在双引号中可以使用转义字符 \n \\ \$ \' \" 在单引号中不能使用转义字符除了
(转义单引号本身 \' 转义转义符号本身 \\ )
\n 在PHP中只有在查看源代码时会看到效果 在页面中无效果
在使用引号输出变量时最好用{}包含避免变量和后面的字符连在一起
或者用空格隔开 echo "在第{$a}行中有{$b}个错误";
c.单引号不需要分析变量.需要转义的也少,速度比双引号快
ASCII码 36(左),37(上),38(右),39(下) 32~126 为可见字符 32为空格
数字0-9为 47-56 小写字母a-z 97-122 大写字母 A-Z 65-90
符串声明或定义方式
a.单引号(尽量使用单引号)
b.双引号 双引号和定界符中的变量都会被解析
c.定界符<<< $str=<<<str
要输出的字符串
str;
str为指定的标识符,结束标识符必须另起一行,前后不能有其他字符或空格,
在开始和结束标识之间不有注释 定义大段文本
d.字符串的拼接 用.号 $a.$b => $a$b
字符串处理函数可以将其他类型的数据先自动转换成字符串后再处理
1.统计字符串的长度
a. strlen($str): 汉字在GBK编码中占2个字节 在UTF-8中占3个字节
b. mb_strlen($str,"gbk") 统计汉字字符
2.截取字符串
a.substr($str,int start,length) 从star开始截取length个字符
如果start为负数 则从后往前数位置 如果length为负数则代表结束位置
3.echo $str; print $str; 输出字符串 区别 echo无返回值 可以打印多个
4.printf(%b,%c,%0,$str,$str,$str)格式化输出字符串
5.trim()去除字符串两边的空白字符和特殊字符
ltrim()去除字符串左边的空白字符和特殊字符
rtrim()去除字符串右边的空白字符和特殊字符
6.strtolower($str)将字符串$str全部变成小写
strtoupper($str)将字符串$str全部变成大写
ucfirst($str)将字符串$str第一个字符改大写
ucwords($str)将字符串$str每个字的第一个字母大写
7.htmlspecialchars($str)将字符串转换成html实体
strip_tags($str)删除html标签
8.strrev()将字符串前后颠倒
9.检索字符串(查询)
strstr();检索字符串
stristr()不区分大小写匹配
strstr($str1,$str2)获取指定字符串$str2$str1中首次出现的位置到末尾的子字符串,
成功则返回剩余字符串,没找到则返回false 如果加参数true则返回出现位置到前面的字符串
strpos($str,"k") 检索字符在字符串中第一次出现的位置
10.explode($str1,$str,limit)将字符串分割成数组
如果$str1为空,则返回false.如果$str$str中找不到则返回包含$str单个元素的数组
implode($str,$arr)将数组转换成字符串
11.替换字符串
a. str_replace($a,$b,$str) $a$b可以是字符串也可以是数组
ex: echo str_replace('死','***',$str);
b. strtr() 替换一批字符串
ex: $str="男人,女人,男孩,女孩";
echo strtr($str,array("男"=>"女","女"=>"男")); //女人,男人,女孩,男孩
strlen($str); //返回字符串的长度
mb_strlen($str) //以指定的编码格式返回字符串的长度
注: count($str) 无论是否为空都返回1
trim($str) 过滤字符串前后的空格
trim($str," @") 过滤字符串前后的空格和指定的字符
trim($str," a..z") 过滤字符串前后的空格和指定的字符
ltrim 过滤左边的空格
rtrim 过滤右边的空格
chunk_split() 将字符串分割成小块
chunk_split($str,n,"--") //ab--cd--ef--
一个参数时 表示整个 n分割成几块 以--连接
chr(97) //a 返回指定字符编码所对应的字符
ord('a') //97 返回指定字符的字符编码
substr($str,start,[length])
1.如果没有length 则返回从start开始到结束所有的字符
ex: echo substr("abcdef",1); //bcdef
2.如果start为负 则从结尾处开始截取
ex: echo substr("abcdef",-2,3) //ef
3.如果length为负 则表示结束位置
ex: echo substr("abcdef",-4,-1) //cde
4.如果start大于字符串的长度 则返回false
ex: var_dump(substr("abcdef",7)) //bool(false)
5.如果start和length都为负数时 无交集则返回空字符串
ex: var_dump(substr("abcdef",-5,-6)); //string(0) ""
ucfirst($str) 将第一个单词的首字母大写
lcfirst($str) 将第一个单词的首字母小写
ucwords($str) 将每个单词的首字母大写
strtoupper($str) 将字符串转化为大写
strtolower($str) 将字符串转化为小写
strstr($str,"a") 返回a第一次出现的位置到结尾的所有字符(包括a)
ex: echo strstr($str6,"s"); //sdias
strstr($str,"a",true) 返回a第一次出现的位置之前的字符(不包括a)
ex: echo strstr($str6,"s",true); //a
strrchr($str1,$str2) 返回字符串$str1$str2最后一次出现的位置以后的所有字符
strpos($str,"a") 返回指定字符第一次出现的位置(索引) 找不到返回false
ex: echo strpos($str6,"s"); //1
strrpos($str,"a") 返回指定字符最后一次出现的位置(索引) 找不到返回false
ex: echo strrpos($str6, "s"); //5
explode(".",$str); 将字符串以指定字符分割成数组 参数顺序不能改变
ex: print_r(explode(",","asb,jk")); //Array ( [0] => asb [1] => jk )
implode($arr,["--"]); 将数组以指定字符拼接成字符串
ex: echo implode(array("asb","jk"),"-"); //asb-jk

PHP文件操作

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
文件类型 在windows中只能是'file(文件)''dir(目录)'
获取文件类型 filetype('../jsq.php')
常用文件属性处理函数
file_exists() 判断文件或目录是否存在
filesize() 取得文件的大小
is_readable() 判断文件是否可读
is_writable() 判断文件是否可写
is_executable() 判断文件是否可执行
filectime() 获取文件的创建时间(时间戳)
filemtime() 获取文件的修改时间(时间戳)
fileatime() 获取文件的访问时间(时间戳)
stat() 获取文件的大部分属性
disk_total_space(“c:”) 磁盘总大小
disk_free_space(“D:”) 磁盘可用空间
is_dir() 判断文件名是否是一个目录
is_file() 判断文件名是否是正常文件
目录的基本操作
解析目录路径
不同的跟路径
A:PHP操作的根路径是操作系统的根
B:文档的根目录(在浏览器中使用)
路径相关函数
basename 返回路径中的文件名部分 dirname 返回路径中的目录部分
pathinfo 返回文件路径的信息(数组)包括dirname basename extension
遍历目录
A:foreach(glob() as $filename)使用glob函数遍历目录
B:打开目录opendir() 读取文件readdir() closedir()关闭目录 rewiddir()倒回目录
在读取目录后在对文件操作时不要操作.和..
统计目录大小
disk_total_space()磁盘总大小 disk_free_space()磁盘可用空间
filesize()文件大小 dir()目录大小
建立与删除目录
mkdir()新建目录 rmdir()删除目录(目录必须为空) unlink(删除文件)
复制目录
文件的基本操作
touch()创建一个文件 copy()复制文件 rename()重新命名或移动
unlink()删除一个文件
对文件内容整体的操作
不打开文件进行读取
file_get_contents()读取文件的内容 readfile()读取整个文件
$arr=file()一行一行的读取文件返回一个数组 $arr[n]读取第n行
file_put_contents()整个写入文件内容
文件的打开与关闭
$fp=fopen("文件位置URL","模式")资源 打开文件 模式 r只读 指针指向文件开头
w写入 清空文件 不存在则创建 a追加写入 指针指向文件末尾 不存在则创建
fclose($fp)关闭文件
文件某一部分进行操作
fwrite($fp,'写入文字') 写入文字
打开文件以后读取
fgets从打开的文件中读取一行 fgetc从打开的文件中读取一个字符
文件的上传设置
方法必须为POST 编码方式必须为enctype='multipart/from-data'
move_upload_file()文件上传函数

PHP面向对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
类是对象的抽象,对象是类的实例
类的基本元素:成员属性和成员方法 在成员属性和方法前面一定要有修饰词public,private
对类进行实例化 $bf1=new BoyFriend()创建对象
访问对象中的成员属性或成员方法
$引用名 = new 类名() $引用名->成员属性=赋值 为对象属性赋值
echo $引用名->成员属性 输出对象的属性 echo $引用名->成员方法() 调用对象的方法
构造方法 __construct();
1.是对象创建完成以后,第一个自动调用的方法(特殊)
2.方法名称比较特殊,可以和类名相同的方法名
3.给对象的成员赋初值
析构方法 __destruct(); 对象被注销(释放)之前自动调用的方法,不能带任何参数
面向对象编程的三大特点:
1.封装性
就是把对象中的成员属性和成员方法加上访问修饰符使其尽可能隐藏对象的内部细节以达到
对成员的访问控制
3种访问修饰符
public(公有的 默认的) 在类的内部和子类中,在类体外都可以使用,
private(私有的) 只能在所属类的内部使用和修改,不能在类体外和类的子类中访问
对于私有成员属性,不能在类外直接获取,需要在类的里面添加一方法通过方法来获取只
能在大括号内调用
protected(受保护的) 可以在本类和子类中被调用,其他地方则不能使用
2.继承性
子类使用extends继承父类
子类可以将父类中所有的内容都继承过来(私有的可继承过来但无法操作)可以修改或添加
继承中的重载(覆盖) 在子类可以用和父类相同的方法名
使用 类::成员 parent::成员 访问父类中被覆盖的方法
parent::__construct()只要是子类去覆盖父类的构造方法,一定要在子类的最上面调用一下
父类被覆盖的构造方法
权限的问题:子类只能大于或等于父类的权限,不能小于
3.多态性

魔术方法
__set() 在直接设置私有属性值时,自动调用,两个参数属性名和属性值
__get() 自动调用,是在直接访问私有成员时自动调用不是私有不调用一个参数
__isset()
__unset()
__tostring()是在直接使用 echo print输出一个对象时,自动调用这个方法,将对象的基本
信息放在__tostring()内部形成字符串返回,不能有参数
__clone() 克隆对象时,自动调用的方法,是对新克隆对象的初始化,在这个方法中$this代
表的是克隆后的副本,所以可以对其成员进行初始化
__call() 在调用一个对象中不存在的方法时自动调用
有两个参数__call(不存在的方法名,参数列表(数组))
可以写提示,还可以将功能相似方法名不同的用它来完成
关键字
instanceof $p instanceof Student用于检测当前对象实例是否属于某一个类
final 用final修饰的类不能被继承,用final修饰的方法不能被覆盖(不让别人去扩展)
static 可以修饰属性和方法,不能修饰类,可以被同一个对象共用,不需要实例化,静态成员
一旦被加载,脚本结束后才释放,静态方法中只能调用静态变量,不能调用非静态成员
调用静态成员的方式 A:在内部调用时使用 self::静态成员
B:在类外调用内部的静态成员时使用 类名::静态成员
const 修饰的成员属性为常量,只能修饰成员属性 访问方式和static相同
clone 使用clone复制一份对象 $obj1 = clone $obj
对象串行化(序列化)
1.将对象转成字符串--串行化 应用 ①将对象在网络中传输 ②将对象持久保存
$str = serialize(对象) file_put_contents("objstr.txt",$str)
__sleep() 在串行化时自动调用的方法
作用: 可以设置需要串行化的对象的属性 在这个方法中返回一个数组,在数组中声明的属性
被串行化,默认是全部串行化
2.将字符串转回对象--返串行化
$str=file_get_contnets("objstr.txt") $p=unserialize($str)
__wakeup() 在反串行化时自动调用的方法
作用: 对串行化回来的对象进行初始化
自动加载类
function __autoload($classname){ inculude strtolower($classname)."class.php"}
抽象方法和抽象类
抽象方法 用abstract来修饰,没有方法体,不使用{},直接使用分号结束功能只能在子类中实现
抽象类 不能被实例化的类,只能作为其他类的父类来使用,用abstract来声明抽象类,普通类
中不能有抽象方法,子类必须把全部的抽象方法覆盖(重写),才能创建对象

接口 使用interface声明接口,特殊的抽象类,接口中的方法必须全部是抽象方法,不能
使用public以外的关键字修饰接口中的成员 成员属性必须是常量不能是变量
子类使用implements来实现接口的,要实现多个接口每个接口之间用逗号连接
命名空间(名字空间)
使用namespace来声明 必须放在第一行

PHP中操作MySQL

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
1.连接数据库      mysql_connect("数据库服务器地址","用户名","密码")
or die('连接失败'.mysql_error())
2.设定连接编码 a. mysql_query("set names 网页文件编码名")
b. mysql_set_charset("网页文件编码名")
3.选择数据库 a. mysql_query("use 数据库名");
b. mysql_select_db("数据库名")
4.执行sql语句 mysql_query(sql语句)
对于mysql_query()函数 可以执行几乎所有的sql语句 分为两种情况
情况1 执行没有数据返回的语句 比如:insert update delete create drop
返回布尔值 true执行成功 false 执行失败
情况2 执行有数据返回的语句 比如: select show desc
返回false 执行失败 执行成功 返回 结果集(数据集)

$res=mysql_query("select.....") //执行又返回的数据的语句
while($arr = mysql_fetch_array($res)){
//mysql_fetch_array() 会出现该结果集中的一行数据并赋值给$arr
返回的是关联数组和索引数组的结合 其下标是字段名
//mysql_fetch_assoc() 返回的是关联数组 下标时列名 值对应列值
//mysql_fetch_row() 返回的是只含值得索引数组
//mysql_fetch_object() 返回的是对象,一条记录就是一个对象
// 一个字段就是一个属性 $rwo->name 访问
//while循环中 会依次取出结果集中的所有数据 直到返回false
foreach($arr as $val){
echo $val; //使用foreach循环遍历出每一列的值
}
}
5.释放资源 mysql_free_result($res)
6.关闭数据库连接 mysql_close($link)
扩展php中操作mysql数据的几个函数
a. mysql_num_rows("结果集") //获取该结果集的行数
b. mysql_num_fields("结果集") //获取该结果集的列数
c. mysql_field_name("结果集",$i) //获取该结果集的第i个字段名字(i从0开始)
其他: mysql_error 获取mysql执行失败时的错误信息

Mysqli

mysqli优势

  • 基于面向过程和面向对象的使用
  • 支持预处理语句
  • 支持事务
  • 支持mysql的新功能,新特性,速度更快
    查看是否开启mysqli
  • phpinfo()
  • extension_loaded(“mysqli”)
  • function_exists(“mysqli_connect”)
  • get_loaded_extensions() 数组
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
//1.连接并选择数据库
$mi = @new mysqli("localhost","root","root","stu");
//2.如果有错误显示错误信息
if($mi->connect_errno){ //错误编号
die("Connect Error".$mi->connect_error); //错误信息
}
//3.设置字符编码
$mi->set_charset('utf8');
//4.执行单条sql语句
$mi->query($sql)
//5.获得新插入操作产生的Auto_increment的值 如果没有 返回0
$mi->insert_id;
//6.获得上一次操作产生的受影响的记录条数
a.受影响的行数 b. -1(sql出错,执行失败) c. 受影响为0
$mi->affected_rows;
//7.结果集对象的操作
a.$res->num_rows 结果集行数
b.$res->fetch_all(); 默认返回的 索引+索引数组形式 MYSQL_NUM
$res->fetch_all(MYSQLI_ASSOC) 返回的是 索引+关联数组形式
$res->fetch_all(MYSQLI_BOTH) 返回的是 索引+索引和关联都有的形式
$res->fetch_array() 默认返回结果集中的一条数据(数组和关联方式) MYSQLI_BOTH
$res->fetch_array(MYSQLI_ASSOC)
$res->fetch_assoc() 结果集中取出一条 以关联数组显示
$res->fetch_array(MYSQLI_NUM)
$res->fetch_row() 结果集中取出一条 以索引数组显示
c.$res->data_seek(0) 移动结果中指针到具体位置

//8.释放结果集资源
$mi->free_result
//9.关闭连接
$mi->close()
//10.过滤字符串中的特殊字符 防止sql注入
$mi->escape_string()
//11.执行多条sql语句 每条语句以分号结束 前一条语句如果失败后面的不会执行
$mi->multi_query($sql)
//12.针对多条SQL语句的查询
$sql = “select id,username,age from user;”;
$sql.=”select current_user();”;
$sql.=”select now();”;
//use_result()/store_result() 获取第一条查询语句产生的结果集
//more_results() 检测是否有更多的结果集
//next_result() 将结果集指针向下移动一位
If($mi->multi_query($sql)){
do{
if($res=$mi->store_result()){
$row[]=$mi->fetch_all(MYSQLI_ASSOC);
}
}while($mi->more_results()&&$mi->next_result());
}else{
echo $mi->error;
}
//13.预处理语句
a 准备预处理语句 防止sql注入 ‘ or 1=1 #
$sql = “insert user(uname,upwd,uage) values(?,?,?)”;
$mysqli_stmt = $mi->prepare($sql);
$uname = “张三” $upwd = “123” $uage = 18
b 绑定参数
$mysqli_stmt = $mi->bind_param(“ssi”,$uname,$upwd,$uage);
c 执行预处理语句
$mysqli_stmt ->execute()
d 预处理查询语句
$mysqli_stmt->bind_result($id,$uname,$age) //绑定结果集的值到变量
$mysqli_stmt->fetch() 遍历结果集
//14.事务处理
a 先关闭自动提交功能
$mi->autocommit(FALSE);
$sql = “update account set money=money-200 where uname = ‘king’”;
$res = $mi->query($sql);
$affect =$mi->affected_rows;
$sql1 = “update account set money=money+200 where uname = ‘queen’”;
$res = $mi->query($sql1);
$affect 1=$mi->affected_rows;
If($res && $affect>0 && $res1 && $affect1>0){
$mi->commit(); //提交事务
echo “转账成功”;
$mi->autocommit(TRUE); //开启自动提交
}else{
$mi->rollback() //事务回滚
echo “转账失败”;
}

其他

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
1.echo     主要用来打印输出字符串和数字(数组和布尔值不适合) 无返回值
true输出1 false无任何输出 null也无任何输出 可以打印多个 速度比print
print() 和echo差不多 只能打印一个 有返回值10
print_r() print_r常用来输出数组 输出的内容包括键和值 不包括数据类型
var_dump() 输出变量的类型和值类型(查看数据结构)值类型和长度 适用于数组和布尔值
printf() 格式化输出字符串
都可以做打印输出用
parse_str($str) 将ulr传递的值(字符串)解析成变量
ex: $str = "first=value&arr[]=foo+bar&arr[]=baz" ;
parse_str($str);
echo $first; //value
parse_str($str,$arr) 将ulr传递的值(字符串)解析成变量用数组存起来
ex: $str = "first=value&arr[]=foo+bar&arr[]=baz" ;
parse_str($str,$arr);
echo $arr["first"]; //value
echo $arr['arr'][1]; //baz

htmlspecialchars($str) 将字符串转为实体
stripslashes($str) 删除斜线

strip_tags($str) 从字符串中去除指定的HTML和PHP标记

PHP 实现页面跳转
1.header("location:XXX.php")
2.echo "<meta http-equiv='refresh' content='0;url=XXX.php'>";
-------------本文结束感谢您的阅读-------------
0%