mysql - 如何在 PHP 中存储导出更大的数据到 CSV?

标签 mysql export

我想导出数千条记录,假设我有 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/

相关文章:

python - Django 原始查询用法

postgresql - 使用 --schema 参数将 Sqoop 导出到 postgres

delphi - 将邮件从 OutLook 拉到文件中

android - 运行 zipalign 时出错

javascript - 使用 Node.js 和 ajax 进行长轮询

php - mysql中的临时表问题

php - 如何进行有效的sql查询?

excel - 如何将excel文件导入h2数据库?

java - JSP生成Excel电子表格(XLS)下载

c# - Mac OSX、ASP.NET 和 mySQL - key 长度错误