我已经使用Laravel,将一个db行加载到一个Eloquent对象中。其中一列是longtext,一个长度超过200万字符的JSON编码数组。我得到的原始错误是json_decode在此列的值上失败。Laravel雄辩的对象,longtext被截断
我在修补匠测试。简化测试代码:
$item = Item::find(1);
echo $item->long_text_field;
var_dump(json_decode($item->long_text_field));
echo strlen($item->long_text_field);
在我本地的流浪者实例中,它显示了正确的值。
...long json array in text, same as the value in the actual DB entry...
...var_dump of json array...
2334040
但是我的远程开发服务器上我得到
...long json array truncated in the middle...
NULL
1048576
显然json_decode失败,因为该字符串被截断。
它截断在一块像这样
"Eff Date":"1\”
应
"Eff Date":"1\/30\/14 16:13”
有在这一点上,我可以看到很多在LONGTEXT逃脱斜线这样,也没有奇怪的字符。有没有人有一个想法,为什么这个文本会在一台服务器上截断,而不是另一台?
对于正确的答案永远不会太晚。谢谢伊恩! – wakeman 2016-02-25 17:28:46
出现错误'致命错误:未定义的类常量'MYSQL_ATTR_MAX_BUFFER_SIZE'',似乎我使用的是mysqlnd,但文本仍被截断。为什么? – leetom 2016-08-16 08:01:39
嗯奇怪。你试图存储的数据有多长时间,它被截断的长度是多少?你在MySQL中使用哪种字段类型? – 2016-08-16 08:50:38