php/mysql:如何将gzcompress-ed字符串插入文本mysql字段?

gio*_*o79 5 php mysql compression text gzip

我一直在尝试压缩并将json编码的字符串存储到mysql中,但我收到"意外/"错误.

我也试过像这样使用addslashes:

addslashes(gzcompress(json_encode($mystring)));
Run Code Online (Sandbox Code Playgroud)

并显示

json_decode(gzuncompress(stripslashes($mystring)));
Run Code Online (Sandbox Code Playgroud)

但它插入失败,我提到的错误.

我在某处读到一个带有gzcompress的字符串应该存储为blob,但是我希望有一种方法可以将它存储在mysql文本字段中,所以我不必乱用db.

PS:有人要求提供完整的错误消息:

警告:输入中出现意外字符:'\'(ASCII = 92)state = 1

PDOException:SQLSTATE [HY000]:常规错误:1366字符串值不正确:'\ x9C\xED}\x8Br\xDB ...'用于第1行的列'field_text_value'.

Fra*_*ila 11

将其存储为BLOB.即使有办法以往返旅行的方式将其存放在一个VARCHAR或多个*TEXT领域,这将是一种可怕的方式.

你确定你还需要压缩吗?

您也可以让MYSQL进行压缩,例如INSERT INTO mytable (compressed_json) VALUE (COMPRESS('[\"the json\"]').