如果一个参数是整数且不是来自用户输入,那么它是一个我设置为$type = 5;
的变量,我是否还需要为它设置占位符,就像我对来自用户的参数一样输入(WHERE type = ?
)?这有什么好处吗?
答案 0 :(得分:3)
出于安全考虑,尽可能参数化是一个好主意,但您不必这样做。参数化查询更有可能从查询缓存的效果中受益,但是您是否会看到性能优势取决于您的方案。
在某些情况下,您需要直接添加SQL;例如,列和表名称不能参数化。只要仔细过滤这些,你就可以了。
答案 1 :(得分:1)
为了安全起见,我会使用准备好的声明。虽然参数不是直接来自用户输入,但有人可能会在那里注入有害代码。可能打破你的SQL数据库