我已經使用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