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


Difference Between PDO / Prepared Statement - PHP/MySQL

我尝试谷歌找到任何缺点,但没有找到任何缺点!
如果有人分享有关此主题的一些内容,我将很高兴!
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

那么你可能会遇到麻烦