Почему mysql_real_escape_string в php экранирует два раза? Привет всем. Помогите пожалуйста. Пытаюсь получить объявление с сайта, а mysql_real_escape_string почему-то экранирует одинарную кавычку двойным слешем из-за этого ошибка.
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:
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));
Надеюсь, это поможет вам разрешить проблему.