作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我一直在尝试将 json 编码的字符串压缩并存储到 mysql 中,但出现“意外的/”错误。
我也试过像这样使用 addslashes:
addslashes(gzcompress(json_encode($mystring)));
并显示
json_decode(gzuncompress(stripslashes($mystring)));
但是插入失败并出现我提到的错误。
我在某处读到一个带有 gzcompress 的字符串应该存储为一个 blob,但我希望有一种方法可以将它存储在 mysql 文本字段中,这样我就不必弄乱数据库了。
PS:有些人在这里要求提供完整的错误信息:
Warning: Unexpected character in input: '\' (ASCII=92) state=1
PDOException: SQLSTATE[HY000]: General error: 1366 Incorrect string value: '\x9C\xED}\x8Br\xDB...' for column 'field_text_value' at row 1.
最佳答案
将其存储为 BLOB
。即使有一种方法可以将其存储在 VARCHAR
或 *TEXT
字段中,并且能够在往返过程中保存下来,这也是一种可怕的方法。
你确定你仍然需要压缩吗?
你也可以让 MYSQL 做压缩,例如INSERT INTO mytable (compressed_json) VALUE (COMPRESS('[\"the json\"]')
。
关于PHP/MySQL : How to insert a gzcompress-ed string into a text mysql field?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8516161/
我是一名优秀的程序员,十分优秀!