我想导出数千条记录,假设我有 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);
任何帮助将不胜感激。
最佳答案
你有什么错误?看来是内存溢出了。将 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;
关于mysql - 如何在 PHP 中存储导出更大的数据到 CSV?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18781580/