mysql_real_escape_string сохраняет данные в базе данных вместе с обратной косой чертой
-
26-09-2019 - |
Вопрос
Когда я использую mysql_real_escape_string для своих неэкранированных строк, данные в базе данных сохраняются с обратной косой чертой, чего не должно быть.
У меня Magic_quotes_gpc ВЫКЛ, не знаю, почему это происходит.Есть идеи ?
Есть ли какие-либо настройки в базе данных MySQL, которые необходимо изменить?
Я не использую дополнительные косые черты в коде.Язык PHP.
Пожалуйста помоги.
Решение
Есть несколько вариантов Magic_Quotes, которые очень инвазивны и не могут быть переопределены. Я думаю, что в маловероятно, что наличие дополнительных сбежаков делается СУБД.
Вы проверили, как выглядит данные до Применение MySQL_REAL_ESCAPE_STRING () - я бы поспорить, что она уже сбежала как-то.
Слияние
Другие советы
ответ прост.В базе данных MySQL нет настроек, которые необходимо изменить.Это ваш код/настройки.
Или вы иметь magic_quotes_gpc
включен, и его необходимо дважды проверить, иначе часть вашего кода сделает еще одно сокращение.
STRIPSLASH () - это когда директива PHP Magic_Quotes_GPC включена (по умолчанию), и вы не вставляете эти данные в место (например, базу данных), которые требуют выхода. Например, если вы просто выводят данные прямо из HTML-формы.
<?php
$str = "Is your name O\'reilly?";
// Outputs: Is your name O'reilly?
echo stripslashes($str);
?>
Дайте нам знать, когда вы используете STRIPSLASHES, что ваш вход превращается в. Это попадает в требуемый формат. Это проверить, есть ли что-то не так с вашим входом.
Поскольку вы сказали, что без применения MySQL_REAL_ESCAPE_STRING_STRING Ваши данные хранятся без каких-либо черных касмитов ... и после нанесения его вы получаете Blackslash ... Я лично чувствую себя двойной Проверьте свой код, если вы применяете добавление каких-то где.
Некоторые вопросы...
- Это происходит только в этой текущей функции.
- Проверьте свою magic_quotes_gpc включено или выключено.
- Можете ли вы опубликовать часть этой функции, которая вызывает эту проблему.