【发布时间】:2014-08-18 23:59:59
【问题描述】:
我已阅读以下帖子,并有一些问题:How can I prevent SQL injection in PHP?
我知道您可以在 PDO 和 MySQLi 之间进行选择。有什么区别,我该如何选择?
在示例代码中,他们使用:name 进行 PDO 查询,? 用于 MySQLi。我应该用什么代替它们?只是一个 PHP 变量?
最后,我如何准备开始在我的网站上使用 PDO?有什么我需要安装或添加的吗,或者我可以开始使用示例中提供的相同代码吗?
谢谢
【问题讨论】:
-
这太宽泛了,而且是多个问题的重复
-
在示例代码中,
:name和?是占位符。您不会用任何东西替换它们......这就是您使用参数化查询的方式。这里的重点是将命令与数据分开。当数据与命令不明确时,可能会发生不好的事情。除此之外,从注入的角度来看,使用哪个 API 并不重要。 -
您在征求意见,而这些事情显然表明您不知道注射问题的实际情况。你需要真正了解它,而不仅仅是识别流行语。
-
PDO 也可以使用未命名的 ('?') 参数。
标签: php mysql pdo mysqli sql-injection