跟着百度学PHP[14]-PDO的预处理语句1
预处理语句有以下两个特点:
1.效率高
2.安全性好
为什么说预处理语句效率高呢?
预处理语句就好比一个模板,比如下面的一串插入语句:
insert into admin(id,username,password) values(?,?,?);
问号表示不固定的值,我们只需要输入值然后批量执行模板即可。
为什么说其安全性好呢?
因为其已经生成一个模板了,已经编译好了(PS:还没有执行)所以纵使黑客执行sql攻击命令也是无效的。因为已经编译了,输入再多的恶意sql语句也是徒劳。
开始一个真实案例:
<?php
try{
$pdo = new pdo("mysql:host=localhost;port=3306;dbname=test","root","");
}catch(PDOException $e){
echo $e->getmessage();
}
$pdo->setattribute(PDO::ATTR_AUTOCOMMIT,0);
echo "PDO对象创建成功.<br />"; 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语句.<br />";
$pdo->setattribute(PDO::ATTR_AUTOCOMMIT,1);
?>
下图为执行后的效果:

如果我们要插入更多的自然都是没有问题的。所以效率上面会好的很多。sqli也有预处理功能但是麻烦的多。
跟着百度学PHP[14]-PDO的预处理语句1的更多相关文章
- 跟着百度学PHP[14]-PDO的预处理语句2
		
在$sql = $pdo -> prepare("insert into users(gold,user,password) values(?,?,?)"):条语句我们不仅仅 ...
 - 跟着百度学PHP[14]-PDO之Mysql的事务处理2
		
前面所将仅仅是在纯mysql下的讲解,这节就是要将其搬到PDO台面上来了. 将自动提交关闭. SetAttribute下有一个PDO::ATTR_AUTOCOMMIT 将其设置为0即可关闭,如:$pd ...
 - 跟着百度学PHP[14]-PDO的错误处理模式&PDO执行SQL
		
我们在使用PDO去执行sql语句的时候并不会报错.如下案例所示: <?php try { //$pdo = new pdo("mysql:host=主机;port=端口;dbname= ...
 - 跟着百度学PHP[14]-PDO之Mysql的事务处理1
		
事务处理:在实际案例当中干一件事的mysql语句(好比转账,小一同学转账100,小二同学收账,在mysql当中小一就要减去转账的钱,小二就要增加100快)倘若该语句执行过程中有任何一条的sql语句出错 ...
 - 跟着百度学PHP[14]-初识PDO数据库抽象层
		
目录: 00x1 php中的pdo是什么? 00x2 pdo创建一个PDO对象 00x1 php中的pdo是什么? 就是操作数据库的方法,pdo就是把操作数据库的函数封装成一个pdo类,其间做了安全验 ...
 - 跟着百度学PHP[14]-COOKIE的应用/网站登陆案例完整案例
		
先在数据库当中创建以下数据: mysql> create table user( -> id int not null auto_increment, ) not null default ...
 - 跟着百度学PHP[14]-PDO-优化驱动
		
使用方法设置预定义变量 PDO的方法/属性 PDO::beginTransaction — Initiates a transaction PDO::commit — Commits a transa ...
 - PDO prepare预处理语句
		
预处理语句 $dsn="mysql:host=localhost;dbname=emp"; try{ $pdo=new PDO($dsn,'root','root'); }catc ...
 - 跟着百度学PHP[17]-复习PDO的几个关键词
		
主要就是复习一下几个关键词.发现太久没有写又忘了.惭愧. final self static const
 
随机推荐
- how to use coffee script
			
TABLE OF CONTENTS TRY COFFEESCRIPT ANNOTATED SOURCE CoffeeScript is a little language that compiles ...
 - 关于File.separator 文件路径:window与linux下路径问题(“No such file or diretory ”异常解决方案)
			
最近有个在页面上传Excel文件至服务器指定目录并进行数据校验.最后入库及进行进一步处理的应用情境,我写好代码在模拟环境下测试,完全没问题:但客户试用的时候,却老是报告“No such file or ...
 - mysql5.7用户密码策略问题
			
密码策略问题 ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 查看 mysql 初 ...
 - JSP中的TAG文件和TLD文件小结
			
在jsp文件中,可以引用tag和tld文件. 1.对于tag文件 <%@ taglib prefix="ui" tagdir="/WEB-INF/tags" ...
 - 云计算之路-试用Azure:拐弯抹角的负载均衡
			
负载均衡是云服务商标配的免费服务.阿里云的对应产品叫SLB,UCloud的对应产品叫ULB,操作都很简单直观,进入负载均衡管理控制台,添加负载均衡,选择相应的虚拟机即可. 而Azure则完全不一样,在 ...
 - LeetCode Add Binary |My Solution
			
Given two binary strings, return their sum (also a binary string). For example, a = "11" b ...
 - Cocos2dx&Lua - UI显示优化之怎样解决解析大量json文件
			
GUIReader中有个widgetFromJsonFile的方法,此方法是用于解析json文件(cocostudio生成的UI的)并返回该文件的父节点(Widget),然后便于进一步的UI操作(如获 ...
 - iOS 判断NSString是否包含某个字符串
			
主要是使用3个方法 rangeOfString 是否包含 hasPrefix 是否在前缀包含 hasSuffix 是否在末尾包含 如代码: //判断字符是否包含某字 ...
 - Android出现“Read-only file system”解决办法
			
操作设备文件系统上的文件结果遇到"... Read-only file system". 解决办法: 1. 最简单的,adb remount 2. 不行的话,adb shell s ...
 - DDL语句--改动表
			
改动表是指改动数据库中已经存在的表的定义.改动表比又一次定义表简单.不须要又一次载入数据.也不会影响正在进行的服务. MySQL中通过ALTER TABLE语句来改动表.改动表包含改动表名.改动字段数 ...