Подготовленные операторы используют заполнители для вставляемых значений.Фрагмент кода в вашем вопросе уже интерполирует значение в запрос и поэтому склонен к внедрению SQL.
В следующем псевдокоде выделены подготовленные операторы:
$stmt = $conn->prepare('SELECT * FROM `table` WHERE `id` = ?');
$stmt->execute($_POST['id']);
В этом примерелогика этого «кода» позаботится о правильном цитировании всего, что находится в $_POST['id']
и замене знака вопроса ?
этим.Вы также можете встретить следующие заполнители:
$stmt = $conn->prepare('SELECT * FROM `table` WHERE `id` = :id');
$stmt->execute(array(
'id' => $_POST['id']
));
Обратите внимание, однако, что подготовленные операторы не освобождают вас от обязанности проверять вводимые пользователем данные перед передачей их в (My) SQL-оператор: ifid
ожидается как целое число, в качестве входных данных принимаются только целые числа.