博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
跟着百度学PHP[14]-PDO的预处理语句1
阅读量:6994 次
发布时间:2019-06-27

本文共 1008 字,大约阅读时间需要 3 分钟。

预处理语句有以下两个特点:

  1.效率高

  2.安全性好

为什么说预处理语句效率高呢?

  预处理语句就好比一个模板,比如下面的一串插入语句:

insert into admin(id,username,password) values(?,?,?);

问号表示不固定的值,我们只需要输入值然后批量执行模板即可。

为什么说其安全性好呢?

  因为其已经生成一个模板了,已经编译好了(PS:还没有执行)所以纵使黑客执行sql攻击命令也是无效的。因为已经编译了,输入再多的恶意sql语句也是徒劳。

开始一个真实案例:

getmessage();} $pdo->setattribute(PDO::ATTR_AUTOCOMMIT,0); echo "PDO对象创建成功.
";try{ $sql = $pdo ->prepare("insert into users(gold,user,password) values(?,?,?)");//准备一条sql语句。prepare英译为预备。但未执行。 //我们需要将三个问号分别绑定参数。 $sql ->bindparam(1,$gold);//bind英译为绑定,param译参数。 $sql ->bindparam(2,$user); $sql ->bindparam(3,$password); $gold = 9; $user = 'user'; $password = 'awdohaw'; $sql -> execute();//需要再插入那么直接再复制18行到20行代码即可。 $gold = 10; $user = 'hacker-def'; $password = 'while'; $sql -> execute();//execute即执行该条sql命令。}catch(PDOException $e){ echo $e->getmessage(); exit;} echo "成功执行sql语句.
"; $pdo->setattribute(PDO::ATTR_AUTOCOMMIT,1); ?>

下图为执行后的效果:

 

如果我们要插入更多的自然都是没有问题的。所以效率上面会好的很多。sqli也有预处理功能但是麻烦的多。

转载地址:http://mwsvl.baihongyu.com/

你可能感兴趣的文章
[USACO12DEC]逃跑的BarnRunning Away From…
查看>>
VC调用Delphi对象接口
查看>>
喜马拉雅规则
查看>>
Missing contentDescription attribute on image
查看>>
Java-第一个Java程序
查看>>
简单介绍下Docker命令
查看>>
UWP 判断windows mobile是使用的实体键还是虚拟按键
查看>>
[CF235E]Number Challenge
查看>>
PHP——字符串统一转码为GBK,自动判断是否UTF8并转码
查看>>
python smtplib.SMTPDataError: (554
查看>>
模拟 --- 简单括号匹配
查看>>
基于python的selenium自动化测试环境搭建
查看>>
Latex
查看>>
Handler一定要在主线程实例化吗?new Handler()和new Handler(Looper.getMainLooper())的区别...
查看>>
Day14 Javascript 点击添加出弹窗,取消隐藏弹窗小练习 反选,全选,取消边框...
查看>>
解决scipy安装(pip install scipy)失败,以及其他问题
查看>>
POJ 3259 Wormholes (最短路)
查看>>
CentOS6.5配置PHP CI程序
查看>>
【ntp时间校准配置】
查看>>
实用函数及STL
查看>>