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      
 5       if  ( mysqli_connect_errno ()){
 6           printf ( " Error:%s\n " , mysqli_connect_error ());
 7           exit ;
 8      }
 9       else  {
10           if  ( $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();
16              
17               $stmt -> store_result();
18               $stmt -> bind_result( $id , $name , $author , $price );
19               while  ( $stmt -> fetch()){
20                  printf ( " %s:%s,%s,%s<br/> " , $id , $name , $author , $price );
21              }
22               $stmt -> close();
23          }
24          
25           $db -> close();
26      }
27  ?>


转载于:https://www.cnblogs.com/tonysuen/archive/2009/12/13/1622811.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值