2

我想导出数千条记录,假设我有 165K 记录要导出到 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);

任何帮助将非常感激。

4

2 回答 2

0

这不是您所做的解决方案,. 我的解决方案是从 db 处理它获取有限的数据量,然后返回到数据量,就像在分页中发生的那样。

于 2013-09-13T09:21:46.813 回答
0

你有什么错误?似乎是内存溢出。将 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;
于 2013-09-13T08:34:03.790 回答