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

21 Авг 2019 в 06:26
203 +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 Апр 2024 в 13:18
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир