繁体   English   中英

PDO /预处理语句之间的区别-PHP / MySQL

[英]Difference Between PDO / Prepared Statement - PHP/MySQL

我尝试Google找出任何缺点,但没有发现任何缺点!
如果有人在这个话题上有共同之处,我会很高兴!
PDO和准备好的声明的优缺点

编辑2:

我想每个人都想说准备好的语句PDO更好吗?
我对吗 ?

PDO的主要缺点是查询时间要多一点(我无法“证明”这一点,所以不要把它当作我已经注意到/读到的事实),这要不到一秒钟。 但是,如果您需要的更少,那么第二个mysqli提供像PDO这样的准备好的语句,并且我相信它的工作要快一些,因为它是为一个数据库设置的,而且数量不多。

它是更多代码,但正如nikic所说,请使用包装器类来设置您的语句,以便您的代码看起来像:

$db->fetchAll('SELECT * FROM table WHERE name = ?', $name);

其中fetchAll是您编写的用于处理参数绑定的自定义函数。

我会用哪个? mysqliPDO (PDO由于其自身的多功能性)。 MySQL (不是mysqli )有点过时了,最后您可能要使用MySQL编写更多代码,因为您始终必须过滤输入(如在转义中防止SQL注入,它将无法验证应输入的内容)在那里),然后再将其放入数据库。 使用准备好的语句,过滤工作已全部完成,只要正确使用,注入的机会就很小。

预备语句的真正大优点是将参数传递给? 检查有效性。 因此,SQL注入攻击比创建这样的sql更加困难

$SQL = "INSERT INTO table VALUES('" & $stringfromForm & "');";

好像可以设置一个圆锥形输入以下内容

x'); INSERT INTO someothertable VALUES ('rubbish

那你可能会遇到麻烦

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM