首页 > 数据库 > MySQL > 正文

php mysqli扩展之预处理实例详解

2020-03-22 16:30:31
字体:
来源:转载
供稿:网友
在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理。

在mysqli操作中常常涉及到它的三个主要类:html' target='_blank'>MySQLi类,MySQL_STMT类,MySQLi_RESULT类。预处理主要是利用MySQL_STMT类完成的。

预处理是一种重要的 防止SQL注入的手段,对提高网站安全性有重要意义。

本文案例为 数据库名为test,数据表名为test, 字段有id ,title 两个,id自增长主键。

 ?php define( HOST , localhost define( USER , root define( PWD , define( DB , test $mysqli=new Mysqli(HOST,USER,PWD,DB);if ($mysqli- connect_errno) { Connect Error: .$mysqli- connect_error;}$mysqli- set_charset( utf8 $id= $title= title4 //用?代替 变量$sql= INSERT test VALUES (?,?) //获得$mysqli_stmt对象,一定要记住传$sql,预处理是对sql语句的预处理。$mysqli_stmt=$mysqli- prepare($sql);//第一个参数表明变量类型,有i(int),d(double),s(string),b(blob)$mysqli_stmt- bind_param( is ,$id,$title);//执行预处理语句if($mysqli_stmt- execute()){ echo $mysqli_stmt- insert_id;}else{ echo $mysqli_stmt- error;}$mysqli- close();


使用mysqli预处理防止sql注入:

$id= 4 $title= title4 $sql= SELECT * FROM test WHERE id=? AND title=? $mysqli_stmt=$mysqli- prepare($sql);$mysqli_stmt- bind_param( is ,$id,$title);if ($mysqli_stmt- execute()) { $mysqli_stmt- store_result(); if($mysqli_stmt- num_rows() 0){ echo 验证成功  }else{ echo 验证失败 } $mysqli_stmt- free_result(); $mysqli_stmt- close();


使用mysqli预处理执行查询语句:


$sql= SELECT id,title FROM test WHERE id =? $mysqli_stmt=$mysqli- prepare($sql);$id=1;$mysqli_stmt- bind_param( i ,$id);if($mysqli_stmt- execute()){ $mysqli_stmt- store_result(); //将一个变量绑定到一个prepared语句上用于结果存储 $mysqli_stmt- bind_result($id,$title); while ($mysqli_stmt- fetch()) { echo $id. : .$title. br/ 
独孤九贱(5)_ThinkPHP5视频教程

ThinkPHP是国内最流行的中文PHP开发框架,也是您Web项目的最佳选择。《VeVb.com独孤九贱(5)-ThinkPHP5视频教程》课程以ThinkPHP5最新版本为例,从最基本的框架常识开始,将...

Peter-Zhu 2017-05-16 12:03:57


独孤九贱(4)_PHP视频教程

江湖传言:PHP是世界上最好的编程语言。真的是这样吗?这个梗究竟是从哪来的?学会本课程,你就会明白了。PHP 出品的PHP入门系统教学视频,完全从初学者的角度出发,绝不玩虚的,一切以实用、有用...

Peter-Zhu 2017-03-20 22:47:17


独孤九贱(1)_HTML5视频教程

《VeVb.com原创html5视频教程》课程特色:php 原创幽默段子系列课程,以恶搞,段子为主题风格的php视频教程!轻松的教学风格,简短的教学模式,让同学们在不知不觉中,学会了HTML知识。...

Peter-Zhu 2017-03-13 10:15:11


ThinkPHP5实战之[教学管理系统]

本套教程,以一个真实的学校教学管理系统为案例,手把手教会您如何在一张白纸上,从零开始,一步一步的用ThinkPHP5框架快速开发出一个商业项目。

Peter-Zhu 2017-07-24 16:48:56


PHP入门视频教程之一周学会PHP

所有计算机语言的学习都要从基础开始,《PHP入门视频教程之一周学会PHP》不仅是PHP的基础部分更主要的是PHP语言的核心技术,是学习PHP必须掌握的内容,任何PHP项目的实现都离不开这部分的内容,通...

其它编程语言

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表