您的位置:首页 > 编程语言 > PHP开发

PHP的扩展类 mysqli_stmt:预处理类

2014-01-08 23:33 453 查看
mysqli和mysqli_result能完成的功能 都可以使用mysqli_stmt类开完成
1.编译一次,使用多次,类似于存储过程
2.参数化查询,可防止sql注入

[code]     [code] <?php


header("Content-Type:text/html; charset=utf8");


 


$mysqli = new mysqli("localhost","root","1234","test2");


 


if($mysqli->connect_error)


{


die("连接数据库出错:".$mysqli->connect_error);


}


 


 


// 增


// $sql = "insert into userinfo(uName,uAge,uPwd) values(?,?,?);";


// 删


// $sql = "delete from userinfo where id=?;";


// 改


// $sql = "update userinfo set uAge=? where Id=?;";


// 查


// $sql = "select top(?) uName,uAge,uPwd from userinfo where id>?;";


$sql = "select uname,uage,upwd from test2.userinfo where id>? limit ?,5";


 


 


//创建预编译对象


$stmt=$mysqli->prepare($sql);


 


//按顺序给点位符绑定值(绑定参数)


//s:string,i:int,d:double,b:二进制大数据类型


 


// 增


// $stmt->bind_param("sis",$uName,$uAge,$uPwd);


// $uName="阿斯顿";


// $uAge=28;


// $uPwd=3557;


 


// 删


// $stmt->bind_param("i",$Id);


// $Id=25;


 


// 改


// $stmt->bind_param("ii",$uAge,$Id);


// $uAge=15;


// $Id=26;


 


// 查


$stmt->bind_param("ii",$Id,$limitNum);


$Id=10;


$limitNum=5;


 


$stmt->bind_result($uName,$uAge,$uPwd);


 


//执行


$result = $stmt->execute();


if(!$result) echo "执行语句出错:".$stmt->error;


 


 while ($stmt->fetch()){


echo "$uName----$uAge----$uPwd\n";


}


 


// echo "最后一次添加的数据ID:".$stmt->insert_id."\n";


// echo "受影响行数".$stmt->affected_rows."\n";//只返回最后一次执行sql受影响的行数


 


$stmt->close();


 


 


 


?>

[/code]
[/code]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: