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 一个随机字符串生成代码
May 26 PHP
php文档更新介绍
Jul 22 PHP
Laravel模板引擎Blade中section的一些标签的区别介绍
Feb 10 PHP
百度工程师讲PHP函数的实现原理及性能分析(三)
May 13 PHP
基于laravel制作APP接口(API)
Mar 15 PHP
POST一个JSON格式的数据给Restful服务实例详解
Apr 07 PHP
基于PHP实现栈数据结构和括号匹配算法示例
Aug 10 PHP
phpstudy2018升级MySQL5.5为5.7教程(图文)
Oct 24 PHP
PHP中命名空间的使用例子
Mar 22 PHP
php校验公钥是否可用的实例方法
Sep 17 PHP
php生成随机数/生成随机字符串的方法小结【5种方法】
May 27 PHP
PHP实现递归的三种方法
Jul 04 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
兼容性最强的PHP生成缩略图的函数代码(修改版)
2011/01/18 PHP
php使用Cookie实现和用户会话的方法
2015/01/21 PHP
Symfony2学习笔记之模板用法详解
2016/03/17 PHP
PHP实现权限管理功能示例
2017/09/22 PHP
让 JavaScript 轻松支持函数重载 (Part 2 - 实现)
2009/08/04 Javascript
js常用排序实现代码
2010/12/28 Javascript
AJAX 网页保留浏览器前进后退等功能
2011/02/12 Javascript
使用node.js半年来总结的 10 条经验
2014/08/18 Javascript
js防止DIV布局滚动时闪动的解决方法
2014/10/30 Javascript
JS实现的表格操作类详解(添加,删除,排序,上移,下移)
2015/12/22 Javascript
ES6新特性:使用export和import实现模块化详解
2017/07/31 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
捕获未处理的Promise错误方法
2017/10/13 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
简易Vue评论框架的实现(父组件的实现)
2018/01/08 Javascript
Vue 与 Vuex 的第一次接触遇到的坑
2018/08/16 Javascript
vue-cli脚手架的.babelrc文件用法说明
2020/09/11 Javascript
pandas groupby 分组取每组的前几行记录方法
2018/04/20 Python
django允许外部访问的实例讲解
2018/05/14 Python
python3.6 如何将list存入txt后再读出list的方法
2019/07/02 Python
Python实现二叉搜索树BST的方法示例
2019/07/30 Python
Python assert关键字原理及实例解析
2019/12/13 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
2020/01/10 Python
深度学习入门之Pytorch 数据增强的实现
2020/02/26 Python
python 解决Fatal error in launcher:错误问题
2020/05/21 Python
详解利用canvas实现环形进度条的方法
2019/06/12 HTML / CSS
Html5实现iPhone开机界面示例代码
2013/06/30 HTML / CSS
为娇小女性量身打造:Petite Studio
2018/11/01 全球购物
彪马荷兰官网:PUMA荷兰
2019/05/08 全球购物
AJAX的优缺点都有什么
2015/08/18 面试题
JAVA程序设计笔试题面试题一套
2015/07/28 面试题
阿德的梦教学反思
2014/02/06 职场文书
建筑工程技术专业求职信
2014/07/16 职场文书
2015年城管个人工作总结
2015/05/15 职场文书
职场:企业印章管理制度(模板)
2019/10/18 职场文书
详解python字符串驻留技术
2021/05/21 Python