我有大尺寸数组,我想直接保存在mysql数据库中。在保存之前,我使用 json_encode 对数组进行编码,但每当我尝试保存数据时,都会出现错误。
CDbCommand failed to execute the SQL statement: SQLSTATE[08S01]: Communication link failure: 1153 Got a packet bigger than 'max_allowed_packet' bytes.
我在/etc/my.cnf中增加了max_allowed_packet值并重新启动了MySQL服务但是没有用完!!
答案 0 :(得分:1)
在xamp/mysql/bin/my.cnf
中尝试将max_allowed _packet
和net_buffer_length
更改为
max_allowed_packet='required size'
net_buffer_length='required size'
答案 1 :(得分:1)
如果JSON大小有问题,您可以尝试使该列成为blob,然后使用bzip压缩(并通过SELECT解压缩)JSON字符串:
http://php.net/manual/en/function.bzcompress.php
这确实使SELECT字段的字段无法搜索,因此如果您需要通过SQL搜索字符串,它将无法工作。