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 相关文章推荐
一个程序下载的管理程序(三)
Oct 09 PHP
PHP无限分类的类
Jan 02 PHP
PHP下操作Linux消息队列完成进程间通信的方法
Jul 24 PHP
从手册去理解分析PHP session机制
Jul 17 PHP
php中根据变量的类型 选择echo或dump
Jul 05 PHP
深入php 正则表达式的学习探讨
Jun 06 PHP
浅析PHP的静态成员函数效率更高的原因
Jun 13 PHP
Laravel中扩展Memcached缓存驱动实现使用阿里云OCS缓存
Feb 10 PHP
YII Framework框架教程之日志用法详解
Mar 14 PHP
php如何执行非缓冲查询API
Jul 22 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
php ZipArchive实现多文件打包下载实例
Oct 31 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
利用js调用后台php进行数据处理原码
2006/10/09 PHP
php中的静态变量的基本用法
2014/03/20 PHP
php实现生成PDF文件的方法示例【基于FPDF类库】
2018/07/21 PHP
js调试系列 源码定位与调试[基础篇]
2014/06/18 Javascript
了不起的node.js读书笔记之mongodb数据库交互
2014/12/22 Javascript
json对象与数组以及转换成js对象的简单实现方法
2016/06/24 Javascript
原生js的RSA和AES加密解密算法
2016/10/08 Javascript
简易的JS计算器实现代码
2016/10/18 Javascript
Javascript面试经典套路reduce函数查重
2017/03/23 Javascript
完美解决iview 的select下拉框选项错位的问题
2018/03/02 Javascript
vue 2.5.1 源码学习 之Vue.extend 和 data的合并策略
2019/06/04 Javascript
简单了解小程序+node梳理登陆流程
2019/06/24 Javascript
从0搭建vue-cli4脚手架
2020/06/17 Javascript
js节流防抖应用场景,以及在vue中节流防抖的具体实现操作
2020/09/21 Javascript
[03:10]2014DOTA2 TI马来劲旅Titan首战告捷目标只是8强
2014/07/10 DOTA
[03:30]DOTA2完美“圣”典精彩集锦
2016/12/27 DOTA
python备份文件的脚本
2008/08/11 Python
跟老齐学Python之变量和参数
2014/10/10 Python
在Python中关于中文编码问题的处理建议
2015/04/08 Python
Django中URL视图函数的一些高级概念介绍
2015/07/20 Python
python爬虫中get和post方法介绍以及cookie作用
2018/02/08 Python
Django 日志配置按日期滚动的方法
2019/01/31 Python
python numpy库np.percentile用法说明
2020/06/08 Python
Python常用扩展插件使用教程解析
2020/11/02 Python
CSS3结构性伪类选择器九种写法
2012/04/18 HTML / CSS
酒吧总经理岗位职责
2013/12/10 职场文书
医学生自我鉴定范文
2014/03/26 职场文书
国土资源局开展党的群众路线教育实践活动整改措施
2014/09/26 职场文书
夫妻双方自愿离婚协议书
2014/10/24 职场文书
分居协议书范本
2014/11/03 职场文书
2014年依法行政工作总结
2014/11/19 职场文书
2014个人年终工作总结范文
2014/12/15 职场文书
学籍证明模板
2015/06/18 职场文书
2016年“我们的节日·清明节”活动总结
2016/04/01 职场文书
2016年度创先争优活动总结
2016/04/05 职场文书
python脚本框架webpy模板赋值实现
2021/11/20 Python