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(); зачем?

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос