PHP5中使用mysqli的prepare操作数据库的介绍


Posted in PHP onMarch 18, 2019

php5中有了mysqli对prepare的支持,对于大访问量的网站是很有好处的,极大地降低了系统开销,而且保证了创建查询的稳定性和安全性。

PHP5.0后我们可以使用mysqli,mysqli对prepare的支持对于大访问量的网站是很有好处的,特别是事务的支持,在大查询量的时候将极大地降低了系统开销,而且保证了创建查询的稳定性和安全性,能有效地防止SQL注入攻击。

prepare准备语句分为绑定参数和绑定结果两种。接下来具体介绍。

1、绑定参数

看下面php代码:

<?php 
//创建连接 
$mysqli=new mysqli("localhost","root","","123456"); 
//检查连接是否被创建 
if (mysqli_connect_errno()) { 
 printf("Connect failed: %s\n", mysqli_connect_error()); 
 exit(); 
}
/** 
 * 创建一个准备查询语句: 
 * ?是个通配符,可以用在任何有文字的数据 
 * 相当于一个模板,也就是预备sql语句 
 */ 
if ($stmt = $mysqli->prepare("insert into `codetc_msg`(mid,content) values(?,?)")){ 
 /**
 * 第一个参数是绑定类型,"is"是指上面SQL语句中第一个?参数是int类型,第二个?参数是string类型 
 * 其中i指int,s指string, 除了i、s之外还有d代表双精度浮点型,b代表blod类型等
 */ 
 $stmt->bind_param("is",$id,$content); 
 //给变量赋值 
 $id = 1; 
 $content = "这是插入的内容"; 
 //执行准备语句 
 $stmt->execute(); 
 //显示插入的影响行数
 echo "Row inserted".$stmt->affected_rows; 
 //关闭数据库的链接 
 $mysqli->close(); 
} 
?>

2、绑定结果:绑定结果就是将你绑定的字段给php变量,以便必要时使用这些变量

请看下面的php代码: 

<?php 
//创建连接 
$mysqli=new mysqli("localhost","root","","123456"); 
//设置mysqli编码 
mysqli_query($mysqli,"SET NAMES utf8"); 
//检查连接是否被创建 
if (mysqli_connect_errno()) { 
 printf("Connect failed: %s\n", mysqli_connect_error()); 
 exit(); 
} 
//创建准备语句 
if ($stmt = $mysqli->prepare("select mid,content from `codetc_msg`")){ 
 //执行查询 
 $stmt->execute(); 
 //为准备语句绑定实际变量 
 $stmt->bind_result($id,$content); 
 //显示绑定结果的变量 
 while($stmt->fetch()){ 
 echo "第".$id."条: ".$content."<br>"; 
 } 
 //关闭数据库的链接 
 $mysqli->close(); 
} 
?>

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
如何在PHP中使用Oracle数据库(1)
Oct 09 PHP
社区(php&amp;&amp;mysql)四
Oct 09 PHP
PHP 中执行排序与 MySQL 中排序
Apr 21 PHP
php 获取当前访问的url文件名的方法小结
Feb 08 PHP
php debug 安装技巧
Apr 30 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
Apr 10 PHP
详谈PHP文件目录基础操作
Nov 11 PHP
php使用substr()和strpos()联合查找字符串中某一特定字符的方法
May 12 PHP
php 参数过滤、数据过滤详解
Oct 26 PHP
Zend Framework入门之环境配置及第一个Hello World示例(附demo源码下载)
Mar 21 PHP
php 截取中英文混合字符串的方法
May 31 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
Aug 06 PHP
php+ajax 文件上传代码实例
Mar 18 #PHP
PHP中单例模式的使用场景与使用方法讲解
Mar 18 #PHP
详解php中curl返回false的解决办法
Mar 18 #PHP
浅谈PHP SHA1withRSA加密生成签名及验签
Mar 18 #PHP
PHP自动生成缩略图函数的源码示例
Mar 18 #PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 #PHP
PHP实现对数字分隔加千分号的方法
Mar 18 #PHP
You might like
东方红 - 来复式再生机的修复
2021/03/02 无线电
利用php+mysql来做一个功能强大的在线计算器
2010/10/12 PHP
PHP获取http请求的头信息实现步骤
2012/12/16 PHP
javascript+dom树型菜单类,希望朋友们一起进步
2007/05/03 Javascript
JavaScript入门教程(7) History历史对象
2009/01/31 Javascript
javascript nextSibling 与 getNextElement(node) 使用介绍
2011/10/13 Javascript
基于Jquery+Ajax+Json的高效分页实现代码
2011/10/29 Javascript
jquery.validate的使用说明介绍
2013/11/12 Javascript
JavaScript的strict模式与with关键字介绍
2014/02/08 Javascript
js控制iframe的高度/宽度让其自适应内容
2014/04/09 Javascript
Javascript OOP之面向对象
2016/07/31 Javascript
JavaScript数组去重由慢到快由繁到简(优化篇)
2016/08/26 Javascript
ajax请求+vue.js渲染+页面加载的示例
2018/02/11 Javascript
jQuery实现常见的隐藏与展示列表效果示例
2018/06/04 jQuery
koa2使用ejs和nunjucks作为模板引擎的使用
2018/11/27 Javascript
Element-ui DatePicker显示周数的方法示例
2019/07/19 Javascript
[01:01:29]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第一场
2018/04/05 DOTA
python使用多线程不断刷新网页的方法
2015/03/31 Python
python内存管理分析
2015/04/08 Python
Python3如何解决字符编码问题详解
2017/04/23 Python
关于Python的一些学习总结
2018/05/25 Python
浅谈numpy生成数组的零值问题
2018/11/12 Python
Django Rest framework之认证的实现代码
2018/12/17 Python
关于numpy中eye和identity的区别详解
2019/11/29 Python
Python selenium爬虫实现定时任务过程解析
2020/06/08 Python
python GUI计算器的实现
2020/10/09 Python
安装Anaconda3及使用Jupyter的方法
2020/10/27 Python
JD Sports荷兰:英国领先的运动时尚零售商
2020/03/13 全球购物
HR喜欢的自荐信格式
2013/10/08 职场文书
研究生自荐信
2013/10/09 职场文书
销售冠军获奖感言
2014/02/03 职场文书
项目合作意向书范本
2014/04/01 职场文书
晚会主持人开场白台词
2015/05/28 职场文书
生死抉择观后感
2015/06/09 职场文书
基于python的matplotlib制作双Y轴图
2021/04/20 Python
MySQL 主从复制数据不一致的解决方法
2022/03/18 MySQL