php mysql预处理_php mysqli扩展之预处理
在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理。
在mysqli操作中常常涉及到它的三个主要类:MySQLi类,MySQL_STMT类,MySQLi_RESULT类。预处理主要是利用MySQL_STMT类完成的。
预处理是一种重要的 防止SQL注入的手段,对提高网站安全性有重要意义。
本文案例为 数据库名为test,数据表名为test, 字段有id ,title 两个,id自增长主键。
使用mysqli预处理执行插入操作:
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); //bind_param的第二个参数不能直接写数值,必须用变量传递过来
//执行预处理语句
if($mysqli_stmt->execute()){
echo $mtsqki_stmt->affected_rows; //影响行数
echo $mysqli_stmt->insert_id; //新增的id
}else{
echo $mysqli_stmt->error;
}
$mysqli->close();
使用mysqli预处理进行查询验证(登录等场景应用):
$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.'
';
}
}
更多mysqli技术请参见php官方手册,查手册是学习的最好方法~
php mysql预处理_php mysqli扩展之预处理相关推荐
- php mysql 持久化_PHP: mysqli 扩展和持久化连接 - Manual
mysqli 扩展和持久化连接 从 PHP 5.3 mysqli 扩展开始支持持久化连接. 持久化连接已经在 PDO MYSQL 和 ext/mysql 中提供支持. 持久化连接的目的在于重用客户端到 ...
- php操作mysql数据库的扩展有哪些_8.PHP操作MySQL数据库(Mysqli扩展)
思考:如果数据库的操作都是需要我们手动去调用客户端发送指令,那么这样的操作有什么意义呢? 引入:手动通过客户端操作MySQL数据库,只是我们学习SQL的一种手段.要实现数据库的自动调用,就需要客户端能 ...
- php mysqli扩展之预处理
在前一篇 mysqli基础知识中谈到mysqli的安装及基础操作(主要是单条sql语句的查询操作),今天介绍的是mysqli中很重要的一个部分:预处理. 在mysqli操作中常常涉及到它的三个主要类: ...
- php mysql 预处理_PHP MySQL 预处理语句
PHP MySQL 预处理语句 在本教程中,您将学习如何使用PHP在MySQL中使用预处理语句. 预处理语句是什么 预处理语句(也称为参数化语句)只是一个SQL查询模板,其中包含占位符而不是实际参数值 ...
- php mysql预处理_PHP MySQL 预处理语句
预处理语句对于防止 MySQL 注入是非常有用的. 预处理语句及绑定参数 预处理语句用于执行多个相同的 SQL 语句,并且执行效率更高. 预处理语句的工作原理如下:预处理:创建 SQL 语句模板并发送 ...
- mysqli扩展是mysql扩展的增强版_PHP学习笔记【22】--PHP数据库编程 mysql扩展库 和mysqli扩展库...
<?php // php数据库编程 //php链接有 mysql 和mysqli // $conn = mysql_connect("localh ...
- php pdo mysql 预处理_php -- PDO预处理
可以使用多种方式实现预处理:指的是在绑定数据进行执行的时候,可以有多种方式. 预处理语句中为变量 使用数组指定预处理变量 1.准备预处理语句(发送给服务器,让服务器准备预处理语句) PDOStatem ...
- mysql数据库与mysqli_通过 PHP Mysqli 扩展与 MySQL 数据库交互
通过 PHP Mysqli 扩展与 MySQL 数据库交互 由 学院君 创建于8个月前, 最后更新于 6个月前 版本号 #1 1269 views 0 likes 0 collects 引言 前面学院 ...
- php7不支持mysql扩展了么_php7不支持mysql扩展需要改成mysqli扩展
最近升级php7发现不支持mysql扩展,需要改成用mysqli扩展 看代码class Db{ private $username = ''; private $password = ''; priv ...
最新文章
- 解决jQuery和其它库的冲突
- MobileNetv2优化问题
- 《JavaScript入门经典(第4版)》上第5章一个实例程序的修正,完善
- (求助)請問DE2-70版子 音樂合成器
- mysql查看当前数据库的连接信息_查看 mysql 数据库当前连接数
- 大数据面试-03-大数据工程师面试题
- sql server 复制_SQL Server复制(合并)–复制架构更改中的性能问题
- android触摸滑动监听,Android 滑动监听的实例详解
- 如果微软开发了 Android,会有何不同?
- Tomcat报错 严重: A child container failed during start
- 确定手机imsi号码的方法
- 极速office(Word)如何插入分数
- 外卖优惠券返利系统外卖返利公众号搭建cps系统小程序SaaS源码
- 企业微信微信社群运营该怎么做?
- SCI论文各部分的写作原则与注意点
- Intel有那些45纳米的CPU
- [Hadoop] mac搭建hadoop3.X 伪分布模式
- Java语言实现小学数学练习
- Hystrix断路器 - 概述
- BugkuCTF 游戏过关
热门文章
- 速度超快!字节跳动开源序列推理引擎LightSeq
- 微软:杀死那个曾经全球第一的浏览器
- 距离高效率学习CV算法我还有多远的距离?
- 套娃成功!在《我的世界》里运行Win95、玩游戏,软件和教程现已公开
- 理科生用创意毁灭世界,爆笑!
- 模式设计概述:反应器(Reactor)模式
- 通俗易懂的TCP里面的三次握手以及四次挥手
- ACMNO.37 C语言-数字交换 输入10个整数,将其中最小的数与第一个数对换,然后把最大的数与最后一个数对换。写三个函数; ①输入10个数;②进行处理;③输出10个数。
- 深度学习 VS 传统计算机视觉
- 可旋转的2K显示器,写代码逼格要到位,免费包邮送到家