我试图谷歌发现任何劣势,但没有找到任何! 如果有人就这个话题分享一些事情,我会很高兴的! PDO和准备声明的优点/缺点
编辑2:
我想每个人都想说准备好的声明比 PDO 更好? 我是对的吗?
答案 0 :(得分:1)
PDO的主要缺点是需要更多的查询时间(我无法“证明”这一点,所以不要把它当作我注意到/读过的事实),这远不及一秒钟。但是,如果你需要额外的少,那么第二个mysqli
提供准备好的语句,如PDO
,我相信如果为一个数据库设置而不是很多,则工作速度会快一些。
这是更多代码,但正如nikic所述,使用包装器类来设置语句,以便您的代码看起来像:
$db->fetchAll('SELECT * FROM table WHERE name = ?', $name);
fetchAll
是您编写的自定义函数,用于处理params等的绑定。
我会用哪个? mysqli
或PDO
(PDO由于其多功能性)。 MySQL
(不是mysqli
)有点过时了,最后你可以使用MySQL
编写更多代码,因为你总是必须过滤输入(如转义为在将数据放入数据库之前,防止SQL注入,它不会验证应该放在哪里。使用预处理语句,过滤都是为您完成的,只要正确使用,注入的可能性就非常低。
答案 1 :(得分:0)
预备语句的真正大优势在于传入的参数是?检查有效性。因此,SQL注入攻击比创建类似这样的SQL
更难$SQL = "INSERT INTO table VALUES('" & $stringfromForm & "');";
好像某个人可以设置,在表单中输入以下内容
x'); INSERT INTO someothertable VALUES ('rubbish
那么你可能遇到麻烦