Не получаете «» и признаков экранирования при выборе из базы данных?

#php #mysql

#php #mysql

Вопрос:

Я экранирую входные данные в свою базу данных с:

 mysql_real_escape_string()
  

Если я введу:

 "Let's see"
  

когда я выбираю из базы данных, я получаю:

 "let's see"
  

Как мне предотвратить это? Сначала я пишу в форме, затем отправляю ее через AJAX в файл .php, а затем экранирую ее с помощью mysql_real_escape_string() и ничего больше.

Комментарии:

1. Пожалуйста, опубликуйте код, который вы используете для вставки данных в базу данных.

2. Возможно, включены магические кавычки.

Ответ №1:

Звучит так, как будто у вас включены волшебные кавычки, что является фантастическим способом испортить данные вашего пользователя до необратимого уровня. Ужасная ошибка, введенная еще в ужасные старые времена PHP, когда они думали, что регистрировать глобальные файлы было хорошей идеей.

Вместо этого используйте подготовленные инструкции. Это не приведет к искажению ваших данных и не позволит злоумышленникам исказить вашу базу данных.

Ответ №2:

Я не могу сказать вам, почему это не исправляется, однако, когда вы выбираете что-то из своей базы данных, вы можете использовать stripslashes() , чтобы вернуть это в нормальное состояние, например

 $str = "Let's see";
stripslashes($str);
echo $str;
  

Выводил бы:

Давайте посмотрим