服务器之家:专注于服务器技术及软件下载分享
分类导航

Mysql|Sql Server|Oracle|Redis|

服务器之家 - 数据库 - Mysql - mysqli预处理编译的深入理解

mysqli预处理编译的深入理解

2019-12-14 15:43MYSQL教程网 Mysql

记得以前写过mysqli的预处理的php教程,现在整理一下,需要的朋友可以参考

记得以前php点点通也写过mysqli预处理的php教程,那时候只是看书乱写的,没懂原理,数月过后,突然明白了很多: 
想想看。假如我们要插入很多1000个用户,你怎么做,for循环?还是mysqli处理多条sql? no!这些处理很慢的,php里面有很多操作mysql数据库的函数,无非是把sql语句传递给mysql数据库,真正处理sql语句的是mysql,mysql数据库是要编译sql语句进行执行的,上面这两种操作会对相同的sql语句进行多次编译,有这必要吗?程序员总是很聪明的,于是有了mysqli预处理技术!mysqli还能防止sql注入攻击! 
看看下面这个预编译代码: 

复制代码代码如下:

<?php 
//创建连接 
$mysqli=new mysqli("localhost","root","","test"); 
//设置mysqli编码 
mysqli_query($mysqli,"SET NAMES utf8"); 
//检查连接是否被创建 
if (mysqli_connect_errno()) { 
printf("Connect failed:".mysqli_connect_error()); 
exit(); 

//创建准备语句 
$stmt = $mysqli->prepare("select id,username from `user` where `id` > ?"); 
/*************************************************************/ 
$id=5; 
//绑定参数 
$stmt->bind_param("i",$id); 
//绑定结果集 
$stmt->bind_result($id,$username); 
//执行查询 
$stmt->execute(); 
//显示绑定结果的变量 
while($stmt->fetch()){ 
echo "第".$id."个用户: ".$username."<br />"; 

/**************************************************************/ 
/*www.phpddt.com为你提示:上面*之间的内容可以重复执行类似功能,不需要再次编译了*/ 
//释放结果 
$stmt->free_result(); 
//关闭编译语句 
$stmt->close(); 
//关闭数据库的链接 
$mysqli->close(); 
?> 

延伸 · 阅读

精彩推荐
  • MysqlMySQL开启Slow慢查询的方法示例

    MySQL开启Slow慢查询的方法示例

    这篇文章主要给大家介绍了关于MySQL开启Slow慢查询的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要...

    willamwang2282019-06-04
  • Mysqllinux下mysql自动备份脚本代码

    linux下mysql自动备份脚本代码

    mysql是以mysql用户身份运行的,对/home /mybackup不可写也会失败 ...

    mysql教程网3532019-11-10
  • Mysqlmysql数据库远程访问设置方法

    mysql数据库远程访问设置方法

    MySQL数据库不允许从远程访问怎么办?本文提供了三种解决方法,需要的朋友可以参考下 ...

    mysql教程网2962019-10-20
  • Mysqlmysql Myisamchk小工具使用手册

    mysql Myisamchk小工具使用手册

    Myisamchk是MyISAM表维护的一个非常实用的工具。可以使用myisamchk实用程序来获得有关数据库表的信息或检查、修复、优化他们。myisamchk适用MyISAM表(对应.MYI和...

    mysql教程网3872019-10-24
  • Mysql浅谈mysql使用limit分页优化方案的实现

    浅谈mysql使用limit分页优化方案的实现

    在mysql中limit可以实现快速分页,但是如果数据到了几百万时我们的limit必须优化才能有效的合理的实现分页了,否则可能卡死你的服务器哦。感兴趣的可以...

    爱情小傻蛋4592019-06-12
  • MysqlMySQL 查询某个字段不重复的所有记录

    MySQL 查询某个字段不重复的所有记录

    现在想从这5条记录中查询所有title不重复的记录 ...

    mysql教程网2382019-10-27
  • Mysqlmysql中将null值转换为0的语句

    mysql中将null值转换为0的语句

    mysql中将null值转换为0的语句,在mysql数据库开发中,如果后期添加了字段那么这些值为空值null,我们在使用者需要将null转换为0方便后期的控制就需要下面...

    mysql教程网3332019-11-14
  • Mysql如何提高MySQL Limit查询性能的方法详解

    如何提高MySQL Limit查询性能的方法详解

    今天小编就为大家分享一篇关于如何提高MySQL Limit查询性能的方法详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起...

    CODETC2212019-06-24