百分百源码网-让建站变得如此简单! 登录 注册 签到领金币!

主页 | 如何升级VIP | TAG标签

当前位置: 主页>网站教程>数据库> php Mysqli预处理语句二款实例代码
分享文章到:

php Mysqli预处理语句二款实例代码

发布时间:01/15 来源: 浏览: 关键词:

php教程 mysql教程i预处理语句二款实例代码


<?php
/*=========================mysqli_stmt预处理类(推荐使用)=========================*/
/*===============================优点:效率高,安全================================*/
 $mysqli=new mysqli("localhost","root","123456","xiaoqiangdb");
 
 
/*=================================非select语句==================================*/
 
 $sql="insert into shops教程(name,price,num,desn) values(?,?,?,?)";    //准备一条语句放到服务器中
 
 $stmt=$mysqli->prepare($sql);    //放到数据库教程
 
 $stmt->bind_param("sdis",$name,$price,$num,$desn);  //给占位符传值,类型-变量(不能是值)
 
 $name="zhangsan";
 $price=56.56;
 $num=66;
 $desn="good";
 
 $stmt->execute();    //执行
 
 echo "最后id".$stmt->insert_id;
 $stmt->close();

/*=================================select语句==================================*/

 $sql="select id,name,price,num,desn from shops where id>?";    //准备一条语句放到服务器中
 
 $stmt=$mysqli->prepare($sql);    //放到数据库
 
 $stmt->bind_param("i",$id);  //给占位符传值,类型-变量(不能是值)
 
 $stmt->bind_result($id,$name,$price,$num,$desn);    //绑定结果集
 
 $id=99;
 
 $stmt->execute();    //执行
 
 $stmt->store_result();    //一次性讲结果都取过来,才能移动指针和获取总数
 
 //字段信息
 $result=$stmt->result_metadata();
 
 while($field=$result->fetch_field()){
  echo $field->name;
 }
 echo "<br>";
 
 //记录信息
 $stmt->data_seek(2);   
 
 while($stmt->fetch()){
  echo "$id--$name--$price--$num--$desn<br>";
 }
 echo "记录总数:".$stmt->num_rows;
 
 $stmt->free_result();
 
 $stmt->close();

?>


实例二


<?php
 
$mysqli=new mysqli("localhost","root","","test");
$mysqli->query("set names 'gbk'");//设置为中文编码
 
//$stmt=$mysqli->stmt_init();//返回的就是一个预处理类对象
 
//准备一条语句
//$sql="insert into `test` ('name','age','dpc') values(?,?,?)";//准备一条语句
//$stmt->prepare($sql);
 
//其实 mysqli 本身就有prepare()方法,所以,以上的部分可以改为:
 
//准备一条语句
$sql="insert into `test`(`name`,`age`,`dpc`) values(?,?,?)";//准备一条语句
 
$stmt=$mysqli->prepare($sql);//直接返回了 stmt对象
 
//按占位符绑定参数
$stmt->bind_param("sis",$name,$age,$dpc);// “sis”指的是参数的数据类型 s:字符串,i:整型,d:双精度,b:大二进制
 
//重复插入数据
$name="陈华1";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
 
$name="陈华2";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
 
$name="陈华3";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
 
$name="陈华4";//填写参数
$age="25";//填写参数
$dpc="web开发笔记撰写者,网址是www.chhua.com";//填写参数
$stmt->execute();//执行
 
echo "最后插入的id:".$stmt->insert_id."<br>";
echo "最后一条语句影响了行数:".$stmt->affected_rows;
$stmt->


预处理代码


<?php
 
$mysqli=new mysqli("localhost","root","","test");
$mysqli->query("set names 'gbk'");//设置为中文编码
 
//准备一条语句
$sql="select * from `test` where `id`>?";//准备一条语句
 
$stmt=$mysqli->prepare($sql);//直接返回了 stmt对象
 
//按占位符绑定参数
$stmt->bind_param("i",$id);// “i”指的是参数的数据类型 s:字符串,i:整型,d:双精度,b:大二进制
$id=5;
$stmt->execute();//执行
$stmt->bind_result($id,$name,$age,$dpc);//绑定结果注意,必须和查询语句中所查询的段名称相对应
$stmt->fetch();//这个方法是一条一条的获取结果集信息
while ($stmt->fetch()){
 echo $name."----".$age."----".$dpc."<br>";
}
$stmt->close();//关闭预处理对象
?>

打赏

打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

百分百源码网 建议打赏1~10元,土豪随意,感谢您的阅读!

共有25人阅读,期待你的评论!发表评论
昵称: 网址: 验证码: 点击我更换图片
最新评论

本文标签

广告赞助

能出一分力是一分吧!

订阅获得更多模板

本文标签

广告赞助

订阅获得更多模板