在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理。

  在mysqli操作中常常涉及到它的三个主要类:MySQLi类,MySQL_STMT类,MySQLi_RESULT类。预处理主要是利用MySQL_STMT类完成的。

  预处理是一种重要的 防止SQL注入的手段,对提高网站安全性有重要意义。

  本文案例为 数据库名为test,数据表名为test,  字段有id ,title 两个,id自增长主键。

 

  使用mysqli预处理执行插入操作:

<?php define("HOST", "localhost");
define("USER", 'root');
define("PWD", '');
define("DB", 'test');$mysqli=new Mysqli(HOST,USER,PWD,DB);if ($mysqli->connect_errno) {"Connect Error:".$mysqli->connect_error;
}$mysqli->set_charset('utf8');$id='';
$title='title4';
//用?代替 变量
$sql="INSERT test VALUES (?,?)";
//获得$mysqli_stmt对象,一定要记住传$sql,预处理是对sql语句的预处理。
$mysqli_stmt=$mysqli->prepare($sql);//第一个参数表明变量类型,有i(int),d(double),s(string),b(blob)
$mysqli_stmt->bind_param('is',$id,$title); //bind_param的第二个参数不能直接写数值,必须用变量传递过来//执行预处理语句
if($mysqli_stmt->execute()){    echo $mtsqki_stmt->affected_rows; //影响行数echo $mysqli_stmt->insert_id;  //新增的id
}else{echo $mysqli_stmt->error;}
$mysqli->close();

使用mysqli预处理进行查询验证(登录等场景应用):

$id='4';
$title='title4';$sql="SELECT * FROM test WHERE id=? AND title=?";
$mysqli_stmt=$mysqli->prepare($sql);
$mysqli_stmt->bind_param('is',$id,$title);if ($mysqli_stmt->execute()) {$mysqli_stmt->store_result();if($mysqli_stmt->num_rows>0){echo "验证成功";}else{echo "验证失败";}
}$mysqli_stmt->free_result();$mysqli_stmt->close();

使用mysqli预处理执行查询语句:

$sql="SELECT id,title FROM test WHERE id>=?";$mysqli_stmt=$mysqli->prepare($sql);
$id=1;$mysqli_stmt->bind_param('i',$id);if($mysqli_stmt->execute()){$mysqli_stmt->store_result();   //将一个变量绑定到一个prepared语句上用于结果存储$mysqli_stmt->bind_result($id,$title);while ($mysqli_stmt->fetch()) {echo $id.' :'.$title.'<br/>';}}

更多mysqli技术请参见php官方手册,查手册是学习的最好方法~

越学习越感到自己无知

转载于:https://www.cnblogs.com/JeromeZ/p/9234588.html

php mysqli扩展之预处理相关推荐

  1. php mysql预处理_php mysqli扩展之预处理

    在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理. 在mysqli操作中常常涉及到它的三个主要类: ...

  2. PHP的mysqli扩展

    PHP的mysqli扩展: 一.php.ini需要开启extension=php_mysqli.dll mysqli主要包括:mysqli.mysqli_result.mysql_stmt三个类,通过 ...

  3. Duang~MySQLi 扩展库来袭

    PHP-MySQL 函数库是 PHP 操作 MySQL 资料库最原始的扩展库,PHP-MySQLi 的 i 代表 Improvement ,相当于前者的增强版,也包含了相对进阶的功能,另外本身也增加了 ...

  4. 陈力:传智播客古代 珍宝币 泡泡龙游戏开发第39讲:PHP数据库编程MySQLi扩展库

    陈力:传智播客古代 珍宝币 泡泡龙游戏开发第39讲:PHP数据库编程MySQLi扩展库 mysqli扩展允许我们访问MySQL 数据库,并对MySql数据库进行curd操作.mysqli扩展可以进行数 ...

  5. PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作

    PHP中的MySQLi扩展学习(五)MySQLI_STMT对象操作 就像 PDO 中的 PDO_Statment 对象一样,MySQLI_STMT 对象也是一个预处理语句所形成的对象,专门用来操作 M ...

  6. mysql数据库与mysqli_通过 PHP Mysqli 扩展与 MySQL 数据库交互

    通过 PHP Mysqli 扩展与 MySQL 数据库交互 由 学院君 创建于8个月前, 最后更新于 6个月前 版本号 #1 1269 views 0 likes 0 collects 引言 前面学院 ...

  7. php 开启mysql_php如何开启mysqli扩展

    php开启mysqli扩展的方法:首先打开php.ini配置文件:然后找到[extension=php_mysqli.dll],并取消注释:最后找到[extension_dir],设置ext路径即可. ...

  8. php操作mysql数据库的扩展有哪些_8.PHP操作MySQL数据库(Mysqli扩展)

    思考:如果数据库的操作都是需要我们手动去调用客户端发送指令,那么这样的操作有什么意义呢? 引入:手动通过客户端操作MySQL数据库,只是我们学习SQL的一种手段.要实现数据库的自动调用,就需要客户端能 ...

  9. php7不支持mysql扩展了么_php7不支持mysql扩展需要改成mysqli扩展

    最近升级php7发现不支持mysql扩展,需要改成用mysqli扩展 看代码class Db{ private $username = ''; private $password = ''; priv ...

最新文章

  1. 只需一行代码,你的纯文本秒变 Markdown
  2. my vim IDE 编辑器的配置
  3. Python 动态生成多维数组
  4. “一带一路”谋定沿边开放发展-刘虹飞:经信研究形成共识
  5. readyboost提升明显吗_iphone12promax参数对比11ProMax区别 性能提升多少
  6. 增大iphone音量技巧_原来苹果手机隐藏功能这么好用!调整这个设置,一键增大外放音量...
  7. Replace-iOS
  8. CMMI与Agile敏捷开发比较之二:需求管理篇(兼谈用敏捷实现和满足CMMI的ReqM过程域)...
  9. (三)线程同步工具集_1---控制线程并发访问一个资源
  10. CSU - 1803 数论GCD
  11. 【AMESim】AMESim和Simulink联合仿真步骤
  12. 【VB6】如何用纯VB代码写个五子棋程序?(一)
  13. 移动端---媒体查询
  14. premiere cc2015 导入mov视频没有声音的解决方案
  15. Python第三课:列表,元组,集合
  16. js获取当前时间24小时制
  17. android系统开机默认设置修改记录
  18. 微贷七年之痒:重线下、追科技、争存量,能否赢未来?
  19. Elasticsearch:创建 API key 接口访问 Elasticsearch
  20. SSM+社区线上超市购物系统毕业设计-附源码211704

热门文章

  1. 华为、阿里员工跳槽至微软受抵制,微软当事人称:只是玩梗
  2. 洛谷P4501/loj#2529 [ZJOI2018]胖(ST表+二分)
  3. String字符串位置移动
  4. 2018网站信息系统安全等级保护限期整改通知书的处理解决方案
  5. 数据科学家所需的大脑训练
  6. JavaScript 日期联动选择器
  7. Extensible Messaging and Presence Protocol (XMPP): Core
  8. VC++、MFC最好的开源项目
  9. linux下pptpd的安装配置(×××)
  10. 看有道难题比赛有恶心感 ,付源码挑战,博客园目前纯速度最快。