PHP PDO的预处理语句如何防止SQL注入?使用PDO有哪些其他好处?使用PDO会降低效率吗?

Thi*_*key 11 php pdo sql-injection

我一直在发现这句话PHP PDO's prepared statements prevents SQL injection.

  • php PDO(PDO准备好的语句)如何阻止sql注入?
  • 使用PDO(PDO准备好的声明)的其他优缺点是什么?
  • 使用PDO(PDO准备好的声明)会降低效率吗?

我已经读过:PDO准备好的语句是否足以阻止SQL注入? 但那里的数据并不完全清楚.

You*_*nse 8

嗯,乍一看你的问题看起来更复杂,只需一个链接即可回答

php pdo的预处理语句如何阻止sql注入?

准备好的语句如何防止SQL注入攻击?

使用PDO的其他优点/缺点是什么?

最有趣的问题.
一个最大的PDO缺点是:它被兜售并传播了一个银弹,另一个崇拜的偶像.
虽然没有理解,但与任何其他工具一样,它根本不会有任何好处.
PDO有一些关键功能,如

  • 数据库抽象.这是一个神话,因为它不会改变SQL语法本身.而你根本无法使用Postgre的mysql自动增量ids.更不用说切换数据库驱动程序并不是开发人员经常做出的决定.
  • 占位符支持,实现本机预处理语句或模拟它们.好方法,但非常有限.缺少必要的占位符类型,如标识符或SET占位符.
  • 一个帮助器方法,无需编写循环即可将所有记录放入数组中.只有一个.当你需要至少4个让你的工作变得明智而不那么无聊的时候.

使用PDO会降低效率吗?

同样,它不是PDO,而是准备好了降低效率的陈述.它取决于数据库服务器和您的应用程序之间的网络延迟,但您可能认为它对于最真实的情况可以忽略不计.