注1:由于php废弃mysql扩展,故不再做本讲座中的mysql扩展笔记.
注2:建议使用pdo面向对象风格.
mysqli扩展(面向过程):
同一老师主讲:
https://www.bilibili.com/video/av30169480/?p=90
https://www.bilibili.com/video/av60515533/?p=162
亦可参看韩顺平mysqli讲座:
https://www.bilibili.com/video/av14530957/?p=3
mysqli函数参考手册
MySQL增强版扩展-php官网参考: https://www.php.net/manual/zh/book.mysqli.php
PHP 5 MySQLi 函数-菜鸟教程参考: https://www.runoob.com/php/php-ref-mysqli.html
--------以下为同一老师主讲mysqli函数(面向对象):https://www.bilibili.com/video/av30169480/?p=90-------
开启mysqli
一般php可能已开启mysqli扩展,如果没有开启,请按如上开启.
常用的mysqli函数
PHP操作mysql
-
连接认证,设定字符集和选择数据库
-
新增数据
-
修改数据
-
删除数据
执行mysqli_query函数之后,可以执行mysqli_error($conn)查看mysql给出的错误信息(如果有的话).
我们现在故意试试写错sql语句看看效果,如下故意写错delete:
运行,此时受影响的行数返回-1,即代表sql语句出现错误,通过mysqli_error函数我们可以查看mysql给出的错误信息:
我们更正delete语句:
运行,php显示受影响的行数为1,此时并没有错误信息:
我们查看数据库,果然id为12的记录没有了:
-
查询数据
<?php
$sql="select * from my_student2";
$res=mysqli_query($conn,$sql);
//读取一条数据,且指针下移(下次获取下一条)
//$row=mysqli_fetch_row($res); //返回索引数组(数字0开始的下标),一般不用
//$row=mysqli_fetch_assoc($res);//返回关联数组.以字段名作为数组KEY/键.
//echo mysqli_num_rows($res);//查看结果集行数
/*遍历数组$lists取出全部数据 - 仅演示
$nums = mysqli_num_rows($res);
$lists = array();
for($i=0; $i<$num; $i++){//使用for循环遍历.实际开发不使用这种方式
$row=mysqli_fetch_assoc($res);
$lists[]=$row; //二维数组
}
echo '<pre>';
var_dump($lists);
*/
//实际开发 - 遍历数组
$lists = array();
while($row=mysqli_fetch_assoc($res)){
$lists[] = $row; //二维数组
}
echo '<pre>';
var_dump($lists);
// 释放结果集
mysqli_free_result($res);
mysqli_close($con); //关闭连接
注意:在查询数据后,$res不再是布尔值,而是结果集(对象).
mysqli_connect() | 打开一个到 MySQL 服务器的新的连接。 |
mysqli_character_set_name() | 返回数据库连接的默认字符集。 |
mysqli_close() | 关闭先前打开的数据库连接。 |
mysqli_query() | 执行某个针对数据库的查询。 |
mysqli_affected_rows() | 返回前一次 MySQL 操作所影响的记录行数。(-1代表sql语句执行出错) |
mysqli_errno() | 返回最近调用函数的最后一个错误代码。 |
mysqli_error_list() | 返回最近调用函数的错误列表。 |
mysqli_error() | 返回最近调用函数的最后一个错误描述。 |
从结果集中取得所有行作为关联数组,或数字数组,或二者兼有。 | |
mysqli_fetch_array() | 从结果集中取得一行作为关联数组,或数字数组,或二者兼有。 |
mysqli_fetch_assoc() | 从结果集中取得一行作为关联数组。字段名为数组KEY/键 |
mysqli_fetch_field_direct() | 从结果集中取得某个单一字段的 meta-data,并作为对象返回。 |
mysqli_fetch_field() | 从结果集中取得下一字段,并作为对象返回。 |
mysqli_fetch_fields() | 返回结果中代表字段的对象的数组。 |
mysqli_fetch_lengths() | 返回结果集中当前行的每个列的长度。 |
mysqli_fetch_object() | 从结果集中取得当前行,并作为对象返回。 |
mysqli_fetch_row() | 从结果集中取得一行,并作为枚举数组返回。索引数组,数字0开始的数组下标 |
mysqli_num_rows() | 返回结果集中行的数量。 |
mysqli_free_result() | 释放结果内存。 |