MySQLi
- 特点: MySQLi提供了 面向对象 和 面向过程两种接口
注: 两者使用上并无差异, 甚至可以混着用(但不推荐混着用)
- mysqli类 面向对象
-- 方法 --
#连接
public __construct(
?string $hostname = null, //服务ip
?string $username = null, //登录mysql的用户名
?string $password = null, //登录mysql的密码
?string $database = null, //使用数据库
?int $port = null, //连接服务的端口
?string $socket = null //应使用的套接字或命名管道(待定)
)
作用:构造方法,创建与mysql数据库的连接(返回对应配置的mysqli对象)
注:该构造方法还有一个别名 connect
#查询
public query(
string $query, //查询语句
int $result_mode = MYSQLI_STORE_RESULT //(待定)
): mysqli_result|bool
作用:对数据库执行查询语句,对于SELECT,SHOW,DESCRIBE或EXPLAIN语句,成功查询返回mysqli_result对象,失败返回false;对于其它语句,成功查询返回true,失败返回false
#多行查询
public multi_query(string $query): bool
作用:对数据库执行一条或多条查询语句,若第一个SQL语句就失败了,返回false
#预处理
public prepare(string $query): mysqli_stmt|false
作用:预处理单个SQL查询语句,并返回mysqli_stmt对象(预备语句对象),用于对语句进行后续操作
预处理查询语句:使用问号?作为占位符(表示参数标记),执行语句前必须使用mysqli_stmt的bind_param()方法将 返回的预备语句的参数标记与对应值绑定
#关闭连接
public close(): true
作用:关闭与mysql数据库的连接
-- 属性 --
string $error 存储了连接中最近一次操作的错误信息,若未发生错误,则为空字符串
-- 方法 --
#连接
mysqli_connect(
?string $hostname = null, //服务ip
?string $username = null, //登录mysql的用户名
?string $password = null, //登录mysql的密码
?string $database = null, //使用的数据库
?int $port = null, //连接服务的端口
?string $socket = null //应使用的套接字或命名管道(待定)
): mysqli|false
作用:创建与mysql数据库的连接(返回对应配置的mysqli对象)
#查询
query(
mysqli $mysql, //mysqli对象
string $query, //查询语句
int $result_mode = MYSQLI_STORE_RESULT //(待定)
): mysqli_result|bool
作用:对数据库执行查询语句,对于SELECT,SHOW,DESCRIBE或EXPLAIN语句,成功查询返回mysqli_result对象,失败返回false;对于其它语句,成功查询返回true,失败返回false
#多行查询
mysqli_multi_query(mysqli $mysql, string $query): bool
作用:对数据库执行一条或多条查询语句,若第一个SQL语句就失败了,返回false
#预处理
mysqli_prepare(mysqli $mysql, string $query): mysqli_stmt|false
作用:预处理单个SQL查询语句,并返回mysqli_stmt对象(预备语句对象),用于对语句进行后续操作
预处理查询语句:使用问号?作为占位符(表示参数标记),执行语句前必须使用mysqli_stmt_bind_param()方法将 返回的预备语句的参数标记与对应参数值绑定
#关闭连接
mysqli_close(mysqli $mysql): true
作用:关闭与mysql数据库的连接
#错误
mysqli_error(mysqli $mysql): string
作用:返回连接中最近一次操作的错误信息,若未发生错误,则为空字符串
-- 方法 --
#返回结果(关联数组)
public fetch_assoc(): array|null|false
作用:将结果集的下一行作为关联数组返回(键为字段名)
(每次调用都会返回下一行,当没有更多行时,返回null)
#返回结果(索引数组)
public fetch_row(): array|null|false
作用:将结果集的下一行作为索引数组返回
(每次调用都会返回下一行,当没有更多行时,返回null)
#返回结果(关联或索引数组,根据参数决定)
public fetch_array(int $mode = MYSQLI_BOTH): array|null|false
作用:将结果集的下一行作为数组返回
(mode:常量,决定返回值类型 MYSQLI_ASSOC-关联数组 MYSQLI_NUM-索引数组 MYSQLI_BOTH-同时具有关联数组和索引数组元素的数组)
-- 属性 --
int|string $num_rows 存储了结果集的行数
-- 方法 --
#返回结果(关联数组)
mysqli_fetch_assoc(mysqli_result $result): array|null|false
作用:将结果集的下一行作为关联数组返回(键为字段名)
(每次调用都会返回下一行,当没有更多行时,返回null)
#返回结果(索引数组)
mysqli_fetch_row(mysqli_result $result): array|null|false
作用:将结果集的下一行作为索引数组返回
(每次调用都会返回下一行,当没有更多行时,返回null)
#返回结果(关联或索引数组,根据参数决定)
mysqli_fetch_array(int $mode = MYSQLI_BOTH): array|null|false
作用:将结果集的下一行作为数组返回
(mode:常量,决定返回值类型 MYSQLI_ASSOC-关联数组 MYSQLI_NUM-索引数组 MYSQLI_BOTH-同时具有关联数组和索引数组元素的数组)
#返回结果集行数
mysqli_num_rows(mysqli_result $result): int|string
作用:返回结果集的行数
-- 方法 --
#绑定参数
public bind_param(
string $types, //参数标记的数据类型,i-int d-float s-string b-blob,几个字符对应几个参数标记(如'iddd')
mixed &$var, //参数标记绑定的参数值
mixed &...$vars //参数标记绑定的参数值
): bool
作用:将预备语句参数标记与参数值绑定,成功时返回true
#执行
public execute(?array $params = null): bool
作用:执行预备语句,结果就存储在mysqli_stmt对象中
#获取结果
public get_result(): mysqli_result|false
作用:获取预备语句执行结果,返回mysqli_result对象(即使无结果集也返回该对象)
#关闭预备语句
public close(): true
作用:关闭预备语句
-- 属性 --
string error 存储了对预备语句中最后一次操作的错误信息,若未发生错误,则为空字符串
-- 方法 --
#绑定参数
mysqli_stmt_bind_param(
mysqli_stmt $statement, //mysqli_stmt对象
string $types, //参数标记的数据类型,i-int d-float s-string b-blob,几个字符对应几个参数标记(如'iddd')
mixed &$var, //参数标记绑定的参数值
mixed &...$vars //参数标记绑定的参数值
): bool
作用:将预备语句参数标记与参数值绑定,成功时返回true
#执行
mysqli_stmt_execute(mysqli_stmt $statement, ?array $params = null): bool
作用:执行预备语句,结果就存储在mysqli_stmt对象中
#获取结果
mysqli_stmt_get_result(mysqli_stmt $statement): mysqli_result|false
作用:获取预备语句执行结果,返回mysqli_result对象(即使无结果集也返回该对象)
#关闭预备语句
mysqli_stmt_close(mysqli_stmt $statement): true
作用:关闭预备语句
mysqli_stmt_error(mysqli_stmt $statement): string
作用:返回对预备语句中最后一次操作的错误信息,若未发生错误,则为空字符串