码迷,mamicode.com
首页 > 数据库 > 详细

MySqli预处理

时间:2018-12-21 12:55:40      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:user   结果   服务   header   sel   set   处理   value   roo   

预处理是先提交SQL语句到服务端,执行预编译,

客户端执行SQL语句时,只需要上传输入参数即可。

如果涉及多次读取或存储,效率高于普通SQL执行操作。

1.普通SQL执行

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $mysqli=new mysqli(‘localhost‘,‘root‘,‘‘,‘test‘);
  $mysqli->query(‘set names utf8‘);
  $sql="INSERT INTO users(name,money) values(‘张三‘,100)";
  $result=$mysqli->query($sql);
 ?>

 2.预处理(增删改)

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $mysqli=new mysqli(‘localhost‘,‘root‘,‘‘,‘test‘);
  $mysqli->query(‘set names utf8‘);

  $sql="INSERT INTO users(name,money) values(?,?)"; //参数以?代替
  $stmt=$mysqli->prepare($sql); //预处理
  
  $name=‘张三‘;
  $money=100;
  $stmt->bind_param(‘si‘,$name,$money); //绑定参数
  $result=$stmt->execute();

  $name=‘李四‘;
  $money=200;
  $stmt->bind_param(‘si‘,$name,$money); //绑定参数
  $result=$stmt->execute();
 ?>

 3.预处理(查询)

<?php
  header(‘content-type:text/html;charset=utf-8‘);
  $mysqli=new mysqli(‘localhost‘,‘root‘,‘‘,‘test‘);
  $mysqli->query(‘set names utf8‘);
  $sql=‘SELECT * FROM users WHERE id>?‘; //参数以?代替
  $stmt=$mysqli->prepare($sql);  //预处理
  $id=1;
  $stmt->bind_param(‘i‘,$id); //绑定参数
  $stmt->bind_result($id,$name,$money);  //查询需要绑定结果集 [必须绑定所有字段]
  $stmt->execute(); //执行sql语句
  //取出结果集
  while($stmt->fetch()){
    $data[]=[
      ‘id‘=>$id,
      ‘name‘=>$name,
      ‘monry‘=>$money
    ];
  }
  var_dump($data);

 ?>

 

MySqli预处理

标签:user   结果   服务   header   sel   set   处理   value   roo   

原文地址:https://www.cnblogs.com/t-young1201/p/10153571.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!