ITman论坛|ITman科技

mysqli预处理编译的深入理解

[复制链接]
若相惜 发表于 7 天前 | 显示全部楼层 |阅读模式

登陆之后呈现更多精彩内容!

您需要 登录 才可以下载或查看,没有帐号?论坛注册

x
mysqli预处理编译的深入理解
i的预处理的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 = $mysqliprepare("select id,username from `user` where `id`  ?"); /*************************************************************/ $id=5; //绑定参数 $stmtbind_param("i",$id); //绑定结果集 $stmtbind_result($id,$username); //执行查询 $stmtexecute(); //显示绑定结果的变量 while($stmtfetch()){ echo "第".$id."个用户: ".$username."br /"; } /**************************************************************/ /*www.phpddt.com为你提示:上面*之间的内容可以重复执行类似功能,不需要再次编译了*/ //释放结果 $stmtfree_result(); //关闭编译语句 $stmtclose(); //关闭数据库的链接 $mysqliclose(); ?
本文数据库(mysql)相关术语:navicat for mysql mysql workbench mysql数据库 mysql 存储过程 mysql安装图解 mysql教程 mysql 管理工具
主题:  程序员、数据、数据库、变量、

tags:  mysqli,gt,stmt,sql,id,php,mysql,编译,username,数据库,预处理,绑定,close,result




上一篇:肿瘤标记物MSI检测:形成靶标检测系统检测行业动态
下一篇:兰州新区开建西北地区首家工业气体检测中心气体行业动态
您需要登录后才可以回帖 登录 | 论坛注册

本版积分规则

!jz_fbzt! 快速回复 !jz_fhlb! !jz_gfqqq!
快速回复 返回顶部 返回列表