2011-04-04 25 views
2

我想將我的結果集(約26000條記錄)導出到csv中。10000條記錄後PHP導出爲CSV模塊

超過10000範圍時不工作。

即使在php.ini中將max_execution_time更改爲60後也是如此。

我的代碼如下所示:

header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 
print "$header\n$output"; 

誰能給我擡起頭,以我要去哪裏錯了嗎?

+0

也許它的內存限制,請參見錯誤日誌,嘗試設置INI,看看這是用的ini_set問題(「memory_limit的」, '1024M'); set_time_limit(0); – 2011-04-04 06:44:33

+0

它可能工作超過60秒?你能顯示你的出口代碼嗎? – heximal 2011-04-04 06:46:46

+0

@Haim Evgi:1024M不是一個解決方案,它會在每個請求上消耗1Gb的內存......解決方案是用範圍限制來查詢數據庫... – 2011-04-04 06:48:00

回答

1

爲什麼要將所有內容都存儲到$ output中?在從數據庫中讀取每行時輸出每行,不需要用盡內存來存儲所有內容以用於輸出。

,並避免使用fetchall和類似的方法......輸出的每一行...