Как правильно обработать одинарную кавычку в SQL запросе через PDO?

Здравствуйте, не понятная для меня ситуация.

Данные сохраняю через
$sth = $this->db->prepare($sql);
$result = $sth->execute($params);


Данные в базу сохраняются, но! PDO выдаёт ошибку:
Warning: PDOStatement::execute(): SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'dmin@example.com'' at line 1 in ...\application\model\M_Database.php on line 49


В $sth значение с кавычкой хранится так:

':email' => string(18) "a'dmin@example.com"

Что я делаю не так и как это исправить?
  • Вопрос задан
  • 304 просмотра
Решения вопроса 1
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Пригласить эксперта
Ответы на вопрос 1
taliban
@taliban
php программист
А у вас похоже SQL типа такого:
SELECT * FROM table WHERE email = ':email'

Я бы советовал изменить на:

SELECT * FROM table WHERE email = :email

Доверьтесь пдо, не экранируйте переменные сами
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы