0

我刚刚开始将我网站的所有代码转换为准备好的语句以提供额外的安全缓冲,但我发现自己遇到了同样的问题。

经过一番阅读,我决定在所有选择查询中使用准备好的语句,但是我不确定这些查询中的所有变量是否都需要在准备好的语句中用作“参数”。

例如:

  1. 其中 some_column 为 NULL
  2. 其中 some_column = $_SESSION['some-session-var']
  3. 其中 some_column IN ($someArray)

另外,有没有办法给每个条件一个“名称”而不是使用问号?我觉得我以前在文档中看到过这个,但从那以后我就没有找到它了。

例如:Where city_name = :cityName。如果是这样,我将如何在这里绑定参数?

谢谢,

埃文

4

1 回答 1

0

是的。所有进入查询的数据都应该通过占位符添加。否则根本没有安全感。

尽管准备好的语句非常有限并且仅支持标量值,因此,您的第一个和第三个示例需要额外的编码(示例可以在标签下找到很多)

您提到的命名占位符属于 PDO,mysqli 不支持它们

于 2012-12-27T13:16:37.943 回答