我想导出数千条记录,假设我有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);
非常感谢任何帮助。
答案 0 :(得分:0)
你有什么错误?好像是内存溢出。设置' memory_limit' php.ini中的指令值更大。
您想要做的事情也可以由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;
答案 1 :(得分:0)
这不是你做的解决方案, 。我的解决方案是从db进程中获取限制数据量,然后返回到数据量 就像在分页中一样。