一、概述
MySQLi函数库用于操作MySQL数据库。
PHP操作MySQL数据库管理系统
MySQL
MySQLi
PDO
二、安装
1、确认是否安装扩展
<?php
phpinfo();
2、编辑php.ini
extension_dir
指明php文件的扩展文件目录。
extension_dir = “D:/php7.0/ext”
extension=php_mysqli.dll
3、重启网络服务器(APACHE)
三、应用
1、连接数据库
mysqli_connect(string $server,string $username,
string $password,string $dbname)
功能:连接数据库
参数:
server 数据库服务器的名称或者IP地址.
username 连接数据库的用户名
password 连接数据库的密码
dbname 默认数据库名称
返回:mysqli 对象
2、操作数据库
mysqli_query(mysqli $link,string $query)
功能:执行SQL语句
参数:
link mysqli_connect产生的mysqli 对象
query SQL语句
返回:对于没有返回结果集的SQL语句(INSERT、UPDATE、DELETE),返回布尔值。
有返回结果集的SQL语句(SHOW,DESC,SELECT)
mysqli result 对象
3、mysqli_affected_rows(mysqli $link)
功能:获取被影响的行数
参数:
link mysqli_connect产生的mysqli 对象
返回:被影响的行数
4、
mysqli_insert_id(mysqli $link)
功能:获取insert成功操作产生的自增id。
参数:
link mysqli_connect产生的mysqli 对象
返回:insert成功操作产生的自增id。
如果操作失败,或者id不是自增,则获取到0.
5、mysqli_fetch_array(mysqli_result $result[,int $resultstyle])
功能:获取查询结果集中的数据
参数:
result mysqli_query执行有返回结果集sql语句的返回。
resulttype 获取数组的格式
MYSQLI_BOTH 关联和索引数组
MYSQLI_ASSOC 关联数组
MYSQLI_NUM 索引数组
返回:每次从查询结果集中获取一条结果,获取不到时返回NULL.
6、mysqli_fetch_assoc(mysqli_result $result)
功能:从结果集中获取数据,格式是关联数组
参数:
result mysqli_query执行有返回结果集sql语句的返回。
返回:从结果集中获取数据,格式是关联数组。
每次从查询结果集中获取一条结果,获取不到时返回NULL
7、mysqli_fetch_row(mysqli_result $result)
功能:从结果集中获取数据,格式是索引数组。
参数:
result mysqli_query执行有返回结果集sql语句的返回。
返回:索引数组。
每次从查询结果集中获取一条结果,获取不到时返回NULL
8、mysqli_num_rows(mysqli_result $result)
功能:获取结果集的行数
参数:
result mysqli_query执行有返回结果集sql语句的返回。
返回:获取结果集的行数
9、
mysqli_fetch_all(mysqli_result $result
[,int $resulttype])
功能:从结果集中获取数据。
参数:
result mysqli_query执行有返回结果集sql语句的返回。
resulttype 获取数组的格式
MYSQLI_BOTH 关联和索引数组
MYSQLI_ASSOC 关联数组
MYSQLI_NUM 索引数组
返回:一次取回所有查询的数据。取回数据的格式参考参数
resulttype。
10、mysqli_close(mysqli $link)
功能:释放mysqli_connect产生的连接。
参数:
mysqli_connect产生的mysqli 对象
返回:布尔值
四、MySQLi预处理语句
1、优势
- 安全
- 效率高
2、编译SQL语句
mysqli_prepare(mysqli $link,string $query)
功能:MySQLi预处理语句编译SQL语句
参数:
link mysqli_connect()产生的mysqli对象
query 编译的SQL语句
返回:mysqli_stmt 对象
3、绑定参数(可选)
mysqli_stmt_bind_param(mysqli_stmt $stmt,string $type,mixed $var[,....])
功能:绑定参数
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
type 参数的数据类型
i 整型
s 字符串
d 浮点型
b blob 数据类型
var 具体变量,变量一定要以变量形式传递。
4、执行
mysqli_stmt_execute(mysqli_stmt $stmt)
功能:执行编译好的SQL语句
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
返回:布尔值
5、mysqli_stmt_affected_rows(mysqli_stmt $stmt)
功能:获取被影响的行数
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
返回:成功:被影响的行数。
失败:-1
6、mysqli_stmt_insert_id(mysqli_stmt $stmt)
功能:获取最近一次insert产生的自增ID
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
返回:自增id
7、mysqli_stmt_bind_result(mysqli_stmt $stmt,mixed $var1[,...])
功能:将返回的数据绑定到变量上
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
var1 返回的数据绑定到变量上
8、从结果集中获取数据
mysqli_stmt_fetch(mysqli_stmt $stmt)
功能:从结果集中获取数据
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
返回:一次获取一行数据,拿不到时返回NULL
9、mysqli_stmt_store_result(mysqli_stmt $stmt)
功能:将获取的结果集缓存到客户端
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
10、mysqli_stmt_num_rows(mysqli_stmt $stmt)
功能:获取结果集中的行数
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
返回:行数
11、mysqli_stmt_close(mysqli_stmt $stmt)
功能:释放mysqli_prepare产生的mysqli_stmt 对象
参数:
stmt mysqli_prepare 产生的 mysqli_stmt 对象
返回:布尔值
五、分页
1、分页产生的原因
- 解决用户体验不好。
- 解决服务器负载。
2、分页的原理
1、获取URL地址
$_SERVER["REQUEST_URI"]
2、parse_url(string $url)
功能:拆分URL地址
参数:
url 要进行拆分的地址
返回:数组
3、parse_str(string $query,array $parse)
功能:将url参数转换为数组
参数:
query url参数
parese 整理后返回的数组
4、http_build_query(array $arr)
功能:将数组转换为URL参数形式
参数:
arr 将要进行转换的数组
返回:url参数形式