使用PHP将数组保存在mysql数据库中(json_encode)

时间:2016-09-02 11:35:52

标签: php mysql arrays json

我有大尺寸数组,我想直接保存在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_pa​​cket值并重新启动了MySQL服务但是没有用完!!

2 个答案:

答案 0 :(得分:1)

xamp/mysql/bin/my.cnf中尝试将max_allowed _packetnet_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搜索字符串,它将无法工作。