나는 Eloquent 개체에 DB 행을로드하는 Laravel을 사용했습니다. 하나의 열은 2 백만자를 넘는 JSON 인코딩 배열 longtext입니다. 원래 얻은 오류는 json_decode가이 열의 값에 실패했습니다.Laravel Eloquent 개체, 긴 텍스트가 잘리는 중
나는 팅커로 시험을 보았다. 단순화 된 테스트 코드 :
$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
그러나 내 원격 dev에 서버에 나는 분명히
...long json array truncated in the middle...
NULL
1048576
받고 있어요 문자열이 잘린 때문에 json_decode는 실패합니다.
이 있어야한다이
"Eff Date":"1\”
같은 조각을 잘라 내가 볼 수있는 그 시점에서 LONGTEXT에서 같은 탈출 슬래시, 그리고 어떤 이상한 문자가 많이있다
"Eff Date":"1\/30\/14 16:13”
. 누구나 왜이 텍스트가 한 서버 에서처럼 잘리는 지 아이디어가 있습니까?
정답에 너무 늦었습니다. 감사합니다 이안! – wakeman
오류가 발생했습니다. '치명적인 오류 : 정의되지 않은 클래스 상수'MYSQL_ATTR_MAX_BUFFER_SIZE ''은 (는) mysqlnd를 사용하고있는 것처럼 보이지만 텍스트는 여전히 잘립니다. 왜? – leetom
흠. 이상합니다. 저장하려는 데이터의 양과 잘라내는 길이는 어느 정도입니까? 또한 MySQL에서 어떤 필드 유형을 사용하고 있습니까? –