У меня проблема при вставке в mysql.
У меня есть многомерный массив в javascript, который преобразуется в строку в формате JSON.Например, строка выглядит следующим образом:
[["text1","text2","te'xt with apostroph'e"],["subarray2","a \u000a unicode number","change line \n \n"]]
Таким образом, дело в том, что этот формат использует двойные кавычки вне полей, а затем внутри меня иногда встречаются одинарные кавычки и экранирующие символы \
, как вы можете видеть.
Если я отправлю это из javascript в php через ajax и расшифрую его в php, все будет прекрасно, никаких проблем, идеально.
Проблема возникает, когда янужно вставить его в mysql.
- magic_quotes отключен везде в php.ini
- Я использую функцию mysql_real_escape_string перед тем, как вставить в mysql
Ночто бы я ни делал, вставка прошла успешно, но в базе данных двойные кавычки преобразуются в одинарные, а также исчезают символы \
.
Итак, внутри базы данных у меня осталось следующее:
[['text1','text2','te'xt with apostroph'e'],['subarray2','a u000a unicode number','change line n n']]
Это, конечно, проблема, так как мне нужно сохранить двойные кавычки, чтобы, когда я позже прочитал это из php, я мог декодировать JSON и при этом сохранить одинарные кавычки.внутри текста.Также новая строка \n
и символы Unicode \u000a
больше не работают, поскольку escape-символы исчезли.
Я нашел способ использовать htmlspecialchars($thephrase, ENT_QUOTES);
, который преобразует двойные кавычки в "
.Это, по крайней мере, сохраняет мои двойные кавычки и одинарные кавычки, но это, очевидно, не идеальное решение, плюс я все еще теряю escape-символы \
.
Что-то явно не так в том, что я делаю илиКонфигурация, проблема не связана с JSON, если я просто вставляю напрямую в mysql двойные и одинарные кавычки, двойные преобразуются в одинарные.
Так что, в любом случае, вопрос в тексте, гдеУ меня есть двойные кавычки, одинарные кавычки, escape-символы и символы новой строки, как я могу быть уверен, что, когда я вставлю все это в mysql, я сохраню все из них в mysql varchar или текстовом поле;двойные кавычки, одинарные кавычки, \
escape-символы и символы новой строки?
Я убедился, что magic_quotes везде в php.ini
Большое спасибо за любой совет или помощь.