PHP/MySQL : How to insert a gzcompress-ed string into a text mysql field?

标签 php mysql text compression gzip

我一直在尝试将 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/

相关文章:

php - 如何解决 mysqli_fetch_assoc 错误?

php - MySQL查询,如何多种方式使用字符串?

mysql - 如何将 MySql 中的查询更新为我的自定义字符串

python - 从 csv 文件中读取特定值

php - PHP的str_replace()中,双反斜杠是什么意思?

php - 如何将超过100000条记录导入mysql数据库?

javascript - Codeigniter 中的 jQuery 自动完成

mysql - mysql表中不存在的字段如何添加

mysql - 格式化 MYSQL 中的日期字段

css - 任何浏览器中的奇怪字体外观