php中使用mysql_stmt(预处理语句)来处理select查询结果
2009-12-13 00:40
941 查看
许多PHP脚本通常都会执行除参数以外,其他部分完全相同的查询语句,针对这种重复执行一个查询,每次迭代使用不同的参数情况,MySQL 从4.1版本开始提供了一种名为预处理语句(prepared statement)的机制。它可以将整个命令向MySQL服务器发送一次,以后只有参数发生变化,MySQL服务器只需对命令的结构做一次分析就够了。 这不仅大大减少了需要传输的数据量,还提高了命令的处理效率。可以用mysqli扩展模式中提供的mysqli_stmt类的对象,去定义和执行参数化的 SQL命令。以下是使用这种机制实现的一个查询过程。
1 <?php
2
3 $db = new mysqli("localhost","user","password","testdb");
4
5 if (mysqli_connect_errno()){
6 printf("Error:%s\n",mysqli_connect_error());
7 exit;
8 }
9 else {
if ($stmt = $db->prepare("select id,name,author,price from book where name like ?")){
$stmt->bind_param('s',$n);
$n = "%p%";
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id,$name,$author,$price);
while ($stmt->fetch()){
printf("%s:%s,%s,%s<br/>",$id,$name,$author,$price);
}
$stmt->close();
}
$db->close();
}
?>
1 <?php
2
3 $db = new mysqli("localhost","user","password","testdb");
4
5 if (mysqli_connect_errno()){
6 printf("Error:%s\n",mysqli_connect_error());
7 exit;
8 }
9 else {
if ($stmt = $db->prepare("select id,name,author,price from book where name like ?")){
$stmt->bind_param('s',$n);
$n = "%p%";
$stmt->execute();
$stmt->store_result();
$stmt->bind_result($id,$name,$author,$price);
while ($stmt->fetch()){
printf("%s:%s,%s,%s<br/>",$id,$name,$author,$price);
}
$stmt->close();
}
$db->close();
}
?>
相关文章推荐
- LAMP开发精要(13):PHP中使用mysql_stmt(预处理语句)处理select查询结果
- mysqli_stmt类:使用预处理语句处理SELECT查询结果
- php中使用mysql_stmt(预处理语句)3个小时的艰难故障排除小结
- php中使用mysql_stmt(预处理语句)
- php使用mysql-timeout包,解决sql语句查询超时问题
- Php中使用Select 查询语句的实例
- 2011.9.28 mysqli学习笔记 mysqli连接,multi_query多语句查询,SQL预处理stmt,事务处理
- php中对MYSQL操作之预处理技术(2)数据库dql查询语句
- php分页查询mysql结果base64处理
- php - 在php脚本中处理select查询结果集
- Mysql组合查询-UNION-多个SELECT语句作为单个查询结果返回
- php学习笔记(二十三)PDO的预处理语句的查询以及结果集的使用
- MySQL大数据量分页查询方法及其优化 ---方法1: 直接使用数据库提供的SQL语句 ---语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N ---适
- 使用navicat for mysql 将查询语句过滤的结果导出成insert语句时没有带表名的解决办法
- MySQL使用select语句查询指定表中指定列(字段)的数据
- mysqli学习笔记 mysqli连接,multi_query多语句查询,SQL预处理stmt,事务处理
- (转)PL/SQL编辑数据"这些查询结果不可更新,请包括ROWID或使用SELECT...FOR UPDATE获得可更新结果"处理
- MySQL中明知道查询结果只有一个,SQL语句中使用LIMIT 1会提高查询效率
- php分页查询mysql结果的base64处理方法示例
- MySQL使用select语句查询指定表中指定列(字段)的数据