#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();
Комментариев нет:
Отправить комментарий