2015-05-19 107 views
3

我面臨一個奇怪的問題,我有一張表,它將csv格式的數據存儲爲file_content。我試圖使用SQL在我的Laravel應用程序中獲取文件內容,但是這些數據在某個時間點正在分解。它僅返回部分數據。數據大小約爲9M。無法使用laravel從mysql數據庫的列中獲取完整數據4

表模式:

Field   Type  Collation  Null Key  Default    
------------ ---------- --------------- ------ ------ -------- 
id   bigint(15) (NULL)   NO  PRI  (NULL) 
file_id  bigint(15) (NULL)   YES  MUL  (NULL) 
file_content longtext utf8_general_ci YES    (NULL) 
dataTime  timestamp (NULL)   NO 

SQL:

$sql = "SELECT file_content FROM file_data WHERE file_id = {$file_id} ;"; 
$result = DB::connection('staging_db')->select(DB::raw($sql)); 

當我看到$resultdd()則數據小於連一半應該是什麼結果。例如,我有一個CSV文件中有近37K行被導入到這個列中,但是當我運行上面的SQL時,它只返回只有3.2K行的數據,格式只有CSV格式。

It does not seems to be a SQL DB problem when I run the same with Basic PHP mysql_connect & mysql_query the result set returns whole data set but when I do the same with laravel then this issue comes back

爲什麼&如何解決這方面的想法?

+0

你得到'SELECT FILE_CONTENT FROM file_data WHERE TRIM(的file_id)= {$} FILE_ID什麼' –

+0

@AbhikChakraborty我得到'file_content'的數據,但這些數據是不完整。休息的條件是好的,我沒有任何問題。 –

+0

如果你重複它,你的sql的返回總是_exactly_相同嗎?如果沒有,可能會有任何類型的超時問題。 –

回答

0

你應該更改設置在MySQL:max_allowed_packet

+0

'max_allowed_pa​​cket'設置爲'64M'。那麼我應該增加它嗎? –

+0

不,看起來不是問題 – stile17