[英]Difference Between PDO / Prepared Statement - PHP/MySQL
我尝试Google找出任何缺点,但没有发现任何缺点!
如果有人在这个话题上有共同之处,我会很高兴!
PDO和准备好的声明的优缺点
编辑2:
我想每个人都想说准备好的语句比PDO更好吗?
我对吗 ?
PDO的主要缺点是查询时间要多一点(我无法“证明”这一点,所以不要把它当作我已经注意到/读到的事实),这要不到一秒钟。 但是,如果您需要的更少,那么第二个mysqli
提供像PDO
这样的准备好的语句,并且我相信它的工作要快一些,因为它是为一个数据库设置的,而且数量不多。
它是更多代码,但正如nikic所说,请使用包装器类来设置您的语句,以便您的代码看起来像:
$db->fetchAll('SELECT * FROM table WHERE name = ?', $name);
其中fetchAll
是您编写的用于处理参数绑定的自定义函数。
我会用哪个? mysqli
或PDO
(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.