Почему mysql_real_escape_string в php экранирует два раза? Привет всем. Помогите пожалуйста. Пытаюсь получить объявление с сайта, а mysql_real_escape_string почему-то экранирует одинарную кавычку двойным слешем из-за этого ошибка.

21 Авг 2019 в 06:26
168 +1
0
Ответы
1

mysql_real_escape_string экранирует символы, которые могут использоваться для SQL-инъекций, такие как кавычки, обратные косые черты и другие специальные символы. При этом, при использовании второй обратной косой черты, предшествующей символу, он будет экранирован дополнительно.

Однако, функция mysql_real_escape_string устарела с версии PHP 5.5.0 и была удалена в PHP 7.0.0. Рекомендуется использовать подготовленные запросы (Prepared Statements) с использованием PDO или mysqli для безопасной работы с базой данных.

Для исправления проблемы с экранированием кавычек дважды, можно использовать функцию stripslashes после вызова mysql_real_escape_string:

$escaped_string = mysql_real_escape_string($unescaped_string);
$clean_string = stripslashes($escaped_string);

Или переключиться на использование PDO или mysqli и подготовленные запросы для безопасной работы с данными в базе данных.

$stmt = $pdo->prepare('SELECT * FROM table WHERE field = :value');
$stmt->execute(array('value' => $unescaped_value));

Надеюсь, это поможет вам разрешить проблему.

20 Апр в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 548 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир