标签:value 数据 固定 区别 span str dos 编译技术 sql注入
(1)
比如以下的语句:
1 insert into biao1 values(‘李宁’,‘100’); 2 insert into biao1 values(‘安踏’,‘100’); 3 insert into biao1 values(‘匹克’,‘100’); 4 insert into biao1 values(‘乔丹’,‘100’); 5 insert into biao1 values(‘耐克’,‘100’); 6 insert into biao1 values(‘阿迪’,‘100’); 7 insert into biao1 values(‘361’,‘100’);
那么,这个PDO就可以只是编译一次这些语句相同的地方,然后,根据区别来执行不同的语句。
1 或者比如 2 insert into team values(NULL,‘国安’); 3 insert into team values(NULL,‘恒大’); 4 insert into team values(NULL,‘建国’); 5 insert into team values(NULL,‘绿地’);
语法的实现:
1 (1)编译统一的结构, 2 (2)绑定数据到中间编译结果上, 3 (3)执行绑定了数据的语句
1 (1)编译统一的结构, 2 $PDOStatement = $pdo->prepare(SQL的结构); 3 SQL结构中的数据部分,可以使用问好,或者冒号标签的语法来占用:
1 (2)绑定数据到中间编译结果上, 2 $PDOStatement->bindValue()
1 (3)执行绑定了数据的语句 2 $PDOStatement->execute();
预编译的优点:
更好的防止SQL注入,是因为预编译时,不需要用户的数据参与。编译时,结构固定,导致用户数据不能影响到SQL的结构
普通的执行方法:
$pdo->query();
$pdo->exec()
如果需要防止SQL注入,需要人为的转义用户数据,使用的方式是$pdo->quote()方法。转义并使用引号包裹。
标签:value 数据 固定 区别 span str dos 编译技术 sql注入
原文地址:http://www.cnblogs.com/xiaoyoucai/p/7397163.html