我想导出数千条记录,假设我有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);任何帮助都将不胜感激。
发布于 2013-09-13 16:34:04
你有什么错误?似乎是内存溢出。将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-13 17:21:47
这不是你所做的解决方案。我的解决方案是从db获取有限的数据量,对其进行处理,然后返回到数据量,就像在分页中发生的那样。
https://stackoverflow.com/questions/18781580
复制相似问题