我一直在阅读有关 SQL 注入的信息,但找不到这个问题的答案。
我明白如果我这样的查询
prepare("SELECT id, foo, bar FROM table WHERE username = ?");
然后我应该使用bind_param('s', $username)
来避免 SQL 注入的可能性。
但是,如果我在不是用户输入而是自动生成的 ID 之类的东西上运行我的查询。例子:
prepare("SELECT username, foo, bar from table where id = ?");
其中 id 是自行生成的(自动递增值)。我是否也必须使用bind_param('i', $id)
这里,或者我可以将查询准备为:
prepare("SELECT username, foo, bar from table where id = '$id'");
如果bind_param();
需要,为什么?
谢谢!