MySQLi面向对象实践---预处理
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQLi面向对象实践---预处理相关的知识,希望对你有一定的参考价值。
面向对象的预处理和面向过程的预处理一样,只是转换一种表现形式而已,可以参照一下面向过程的方法http://www.cnblogs.com/-beyond/p/7577155.html
面向对象的预处理涉及以下几个函数:
mysqli_stmt mysqli::prepare ( string $query ) bool mysqli_stmt::bind_param ( string $types , mixed &$var1 [, mixed &$... ] ) bool mysqli_stmt::execute ( void ) mysqli_result mysqli_stmt::get_result ( void ) void mysqli_stmt::free_result ( void ) bool mysqli_stmt::close ( void ) void mysqli_result::free_result ( void )
具体用法如下
<?php $db=new mysqli("localhost","root","root","test"); //预处理(增删改) $sql="delete from aaa where uid = ?;"; $stmt=$db->prepare($sql); $uid=4; $stmt->bind_param(‘i‘,$uid); // $stmt->bind_param(‘i‘,4);wrong $stmt->execute(); $stmt->free_result(); $stmt->close(); //预处理(查) $sql="select * from aaa where uid >?;"; $stmt=$db->prepare($sql); $uid=1; $stmt->bind_param("i",$uid); if($stmt->execute()){ echo "there are ".$stmt->num_rows." rows\\n"; echo "there are ".$stmt->field_count." fields\\n"; $result=$stmt->get_result(); while(list($id,$name)=$result->fetch_array()){ echo $id."=>".$name."\\n"; } $stmt->free_result(); $result->free_result(); } else { echo "failed to execute\\n"; } $stmt->close(); //关闭数据库 $db->close(); ?>
其中关于参数绑定,还有读取结果集的问题,请查看前两篇博客
以上是关于MySQLi面向对象实践---预处理的主要内容,如果未能解决你的问题,请参考以下文章