pdo有
exec和query方法
那么和pdo statement的execute有什么不同呢

举个栗子:

比如说这句

delete from users where id='$_GET['id']'

exec和query是把整一句sql语句发送到数据库进行编译后运行
假如用户输入了

locahost/test.php?id=1' or 1='1

这就会造成sql注入的风险
上述的语句就会造成删除所有的用户。。。 这是相当可怕的结果

而使用pdo statement的execute则不会

delete from users where id=?

他会先把这句sql语句发送给数据库进行编译
然后等待参数的发送 再在数据库中进行组合后运行
即使输入id=1' or 1='1也不会有问题的,因为这里的内容都是问号里的内容

结论:
尽量使用预处理 防止sql注入


Chao
127 声望1 粉丝

引用和评论

0 条评论