Как правильно обработать одинарную кавычку в 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"

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

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

SELECT * FROM table WHERE email = :email

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

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
ИТЦ Аусферр Магнитогорск
от 100 000 до 160 000 ₽