PDO /准备语句之间的区别 - PHP / MySQL

时间:2011-05-06 14:38:17

标签: php pdo prepared-statement

我试图谷歌发现任何劣势,但没有找到任何! 如果有人就这个话题分享一些事情,我会很高兴的! PDO和准备声明的优点/缺点

编辑2:

我想每个人都想说准备好的声明 PDO 更好? 我是对的吗?

2 个答案:

答案 0 :(得分:1)

PDO的主要缺点是需要更多的查询时间(我无法“证明”这一点,所以不要把它当作我注意到/读过的事实),这远不及一秒钟。但是,如果你需要额外的少,那么第二个mysqli提供准备好的语句,如PDO,我相信如果为一个数据库设置而不是很多,则工作速度会快一些。

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

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

fetchAll是您编写的自定义函数,用于处理params等的绑定。

我会用哪个? mysqliPDO(PDO由于其多功能性)。 MySQL(不是mysqli)有点过时了,最后你可以使用MySQL编写更多代码,因为你总是必须过滤输入(如转义为在将数据放入数据库之前,防止SQL注入,它不会验证应该放在哪里。使用预处理语句,过滤都是为您完成的,只要正确使用,注入的可能性就非常低。

答案 1 :(得分:0)

预备语句的真正大优势在于传入的参数是?检查有效性。因此,SQL注入攻击比创建类似这样的SQL

更难
$SQL = "INSERT INTO table VALUES('" & $stringfromForm & "');";
好像某个人可以设置,在表单中输入以下内容

x'); INSERT INTO someothertable VALUES ('rubbish
那么你可能遇到麻烦