#php #pdo #экранирование
Нужно в базу добавлять текст с кавычками ('"`), предварительно экранируя их.
Через mysqli_real_escape_string - в базу добавляет значения, вместе с кавычками.
А через pdo->prepare() и pdo->quote() - нет.
так не работает, если в тексте будут кавычки:
$sql = "INSERT INTO news(text) VALUES('$noFilter')";
$query = $pdo->prepare($sql);
$query->execute();
так тоже, если будут кавычки в тексте:
$sql = "INSERT INTO news(text) VALUES('$noFilter')";
$query = $pdo->quote($sql);
Как быть?
Ответы
Ответ 1
Не подставлять значения напрямую, а использовать плейсхолдеры $query = 'INSERT INTO news (text) VALUES (:text)'; $statement = $pdo->prepare($query); $statement->bindValue(':text', $text); $statement->execute();
Комментариев нет:
Отправить комментарий