Я пытался сжать и сохранить json закодированную строку в mysql, но я получаю «неожиданные /» ошибки.
Я также попытался использовать addlashes вот так:
addslashes(gzcompress(json_encode($mystring)));
И для отображения
json_decode(gzuncompress(stripslashes($mystring)));
Но он терпит неудачу при вставке с упомянутой ошибкой.
Я где-то читал строку с gzcompress, которая должна храниться как blob, но я надеялся, что есть способ сохранить ее в текстовом поле mysql, поэтому мне не нужно возиться с db.
PS: Некоторые спрашивали о полном сообщении об ошибке здесь:
Предупреждение: Неожиданный символ на входе: '\' (ASCII = 92) state = 1
PDOException: SQLSTATE [HY000]: Общая ошибка: 1366 Неверное строковое значение: '\ x9C \ xED} \ x8Br \ xDB …' для столбца 'field_text_value' в строке 1.
Храните его как BLOB
. Даже если бы был способ сохранить его в поле VARCHAR
или *TEXT
таким образом, чтобы выжить в кругосветном путешествии, это было бы ужасно.
Вы уверены, что вам нужно сжатие?
Вы также можете заставить MYSQL выполнить сжатие, например INSERT INTO mytable (compressed_json) VALUE (COMPRESS('[\"the json\"]')
.
Почему вы хотите добавить сжатую строку gzip в базу данных? Почему бы вам просто не сохранить его как:
mysql_real_escape_string(json_encode($myArray)))