簡體   English   中英

如何在PHP中將導出的較大數據存儲為CSV?

[英]How to store export larger data to CSV in PHP?

我想導出成千上萬條記錄,比如說我有16.5萬條記錄可以導出到CSV。 我正在做的是獲取所有記錄並將它們放入數組中,然后使用fputcsv()函數將其導出到CSV。 但是這樣做會使我的頁面崩潰。 我也設置了set_time_limit(0) ,但是它也不起作用。 這是我的做法:

QUERY-> SELECT s.id, 
               s.name, 
               s.email, 
               s.postcode, 
               s.dob
        FROM `subscribers_table` s
        WHERE s.status=1";

while(row = fetch..) {
    $myarray[] = array_data
}

$fp = fopen(..);
foreach($array as $key => $value)
    fputcsv($fp, $value);           
fclose($fp);

任何幫助將非常感激。

你有什么錯誤? 似乎是內存溢出。 將php.ini中的'memory_limit'指令設置為更大的值。

另外,您想做的事情也可以單獨由MySQL完成:

SELECT s.id, 
       s.name, 
       s.email, 
       s.postcode, 
       s.dob
   INTO OUTFILE 'c:/somefile.csv'
   COLUMNS TERMINATED BY ' '
   LINES TERMINATED BY '\n'
   FROM `subscribers_table` s;

這不是您的解決方案。 我的解決方案是從db處理它來限制數據量,然后像分頁一樣簡單地恢復到數據量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM