一、概述
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参数形式