即使我知道参数的类型,我还需要准备声明吗?

时间:2014-02-06 10:40:37

标签: php sql pdo prepared-statement

如果一个参数是整数且不是来自用户输入,那么它是一个我设置为$type = 5;的变量,我是否还需要为它设置占位符,就像我对来自用户的参数一样输入(WHERE type = ?)?这有什么好处吗?

2 个答案:

答案 0 :(得分:3)

出于安全考虑,尽可能参数化是一个好主意,但您不必这样做。参数化查询更有可能从查询缓存的效果中受益,但是您是否会看到性能优势取决于您的方案。

在某些情况下,您需要直接添加SQL;例如,列和表名称不能参数化。只要仔细过滤这些,你就可以了。

答案 1 :(得分:1)

为了安全起见,我会使用准备好的声明。虽然参数不是直接来自用户输入,但有人可能会在那里注入有害代码。可能打破你的SQL数据库