使用mysqli_stmt类
2016-05-26 15:27
295 查看
在生成网页时,许多PHP脚本通常都会执行除参数以外,其他部分完全相同的查询语句,针对这种重复执行一个查询,每次迭代使用不同的参数情况,MySQL从4.1版本开始提供了一种名为预处理语句(prepared statement)的机制。它可以将整个命令向MySQL服务器发送一次,以后只有参数发生变化,MySQL服务器只需对命令的结构做一次分析就够了。这不仅大大减少了需要传输的数据量,还提高了命令的处理效率。可以用mysqli扩展模式中提供的mysqli_stmt类的对象,去定义和执行参数化的SQL命令,mysqli_result类中包含的全部成员属性和成员方法如表13-6和表13-7所示。
表13-6 mysqli_stmt类中的成员方法(共12个)
表13-7 mysqli_stmt类中的成员属性(共6个)
[align=center] [/align]
[align=center] [/align]
表13-6 mysqli_stmt类中的成员方法(共12个)
成员方法名 | 描 述 |
bind_param() | 该方法把预处理语句各有关参数绑定到一些 PHP变量上,注意参数的先后顺序 |
bind_result() | 预处理语句执行查询之后,利用该方法将变量绑定到所获取的字段 |
close() | 一旦预处理语句使用结果之后,它所占用的资源可以通过该方法回收 |
data_seek() | 在预处理语句中移动内部结果的指针 |
execute() | 执行准备好的预处理语句 |
fetch() | 获取预处理语句结果的每条记录,并将相应的字段赋给绑定结果 |
free_result() | 回收由该对象指定的语句占用的内存 |
result_metadata() | 从预处理中返回结果集原数据 |
prepare() | 无论是绑定参数还是绑定结果,都需要使用 该方法准备要执行的预处理语句 |
send_long_data() | 发送数据块 |
reset() | 重新设置预处理语句 |
store_result() | 从预处理语句中获取结果集 |
成员属性名 | 描 述 |
$affected_rows | 返回该对象指定的最后一条语句所影响的记录数。 注意,该方法只与插入、修改和删除三种查询句有关 |
$errno | 返回该对象指定最近所执行语句的错误代码 |
$error | 返回该对象指定最近所执行语句的错误描述字符串 |
$param_count | 返回给定的预处理语句中需要绑定的参数个数 |
$sqlstate | 从先前的预处理语句中返回SQL状态错误代码 |
$num_rows | 返回stmt对象指定的SELECT语句获取的记录数 |
[align=center] [/align]
$stmt = $dbConnection->prepare('SELECT * FROM employees WHERE name = ?'); $stmt->bind_param('s', $name); $stmt->execute(); $result = $stmt->get_result(); while ($row = $result->fetch_assoc()) { // do something with $row }
相关文章推荐
- mysql常用操作(一)
- Mac忘记Mysql密码
- Node.js 连接 MySQL 并进行数据库操作
- 通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
- MySQL 5.6 my.cnf 参数说明
- mysql中int、bigint、smallint 和 tinyint的区别详细介绍
- XAMPP在mac下配置mysql环境变量
- mysql通过ip地址无法连接
- mysql 累加求和
- mysql5.5命令行登录
- 事务隔离级别
- mysql 用户管理和权限设置
- mysql innodb 优化
- mysql 自定义函数与自定义存储过程的调用方法
- MySQL查看数据库相关信息
- mysql索引优化
- MYSQL-Access denied for user 'root'@'localhost' (using password:NO) 解决记录
- mysql数据库体系结构——存储过程
- Mysql root用户密码重置
- MySQL学习总结(三)索引