php中使⽤mysql_stmt(预处理语句)来处理select查询结果
许多PHP脚本通常都会执⾏除参数以外,其他部分完全相同的查询语句,针对这种重复执⾏⼀个查询,每次迭代使⽤不同的参数情
况,MySQL 从4.1版本开始提供了⼀种名为预处理语句(prepared statement)的机制。它可以将整个命令向MySQL服务器发送⼀次,以后只有参数发⽣变化,MySQL服务器只需对命令的结构做⼀次分析就够了。这不仅⼤⼤减少了需要传输的数据量,还提⾼了命令的处理效率。可以⽤mysqli扩展模式中提供的mysqli_stmt类的对象,去定义和执⾏参数化的 SQL命令。以下是使⽤这种机制实现的⼀个查询过程。
1 <?php
2
3$db = new mysqli("localhost","user","password","testdb");
4
5if (mysqli_connect_errno()){
6printf("Error:%s\n",mysqli_connect_error());
7exit;
8    }
9else {
10if ($stmt = $db->prepare("select id,name,author,price from book where name like ?")){
11
12$stmt->bind_param('s',$n);
13$n = "%p%";
14
15$stmt->execute();php调用mysql数据库
16
17$stmt->store_result();
18$stmt->bind_result($id,$name,$author,$price);
19while ($stmt->fetch()){
20printf("%s:%s,%s,%s<br/>",$id,$name,$author,$price);
21            }
22$stmt->close();
23        }
24
25$db->close();
26    }
27 ?>

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。