Почему запрос вроде SELECT ... WHERE user_id = '$id' уязвим, если $id напрямую поступает из запроса?
SELECT ... WHERE user_id = '$id'
$id
Имя переменной $id зарезервировано базой данных
Заключение значения в одинарные кавычки автоматически делает его безопасным
Каждый SQL-оператор SELECT позволяет выполнять произвольные команды операционной системы
SELECT
Непроверенные данные объединяются с SQL, поэтому они могут изменить синтаксис запроса