bind_param () необходим только для введенных пользователем значений или для всех?
Я читал об SQL-инъекциях и не смог найти ответ на этот вопрос.
Я понимаю, если я такой запрос
prepare("SELECT id, foo, bar FROM table WHERE username = ?");
Тогда я должен использоватьbind_param('s', $username)
чтобы избежать возможности внедрения SQL.
Но что, если я выполняю свой запрос на чем-то, что не вводится пользователем, а что-то вроде автоматически сгенерированного идентификатора Пример:
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();
зачем?
Спасибо!