2011-04-04 74 views
2

我想将我的结果集(约26000条记录)导出到csv中。10000条记录后PHP导出为CSV模块

超过10000范围时不工作。

即使在php.ini中将max_execution_time更改为60后也是如此。

我的代码如下所示:

header("Content-type: application/vnd.ms-excel"); 
header("Content-disposition: csv" . date("Y-m-d") . ".csv"); 
header("Content-disposition: filename=".$filename.".csv"); 
print "$header\n$output"; 

谁能给我抬起头,以我要去哪里错了吗?

+0

也许它的内存限制,请参见错误日志,尝试设置INI,看看这是用的ini_set问题(“memory_limit的”, '1024M'); set_time_limit(0); – 2011-04-04 06:44:33

+0

它可能工作超过60秒?你能显示你的出口代码吗? – heximal 2011-04-04 06:46:46

+0

@Haim Evgi:1024M不是一个解决方案,它会在每个请求上消耗1Gb的内存......解决方案是用范围限制来查询数据库... – 2011-04-04 06:48:00

回答

1

为什么要将所有内容都存储到$ output中?在从数据库中读取每行时输出每行,不需要用尽内存来存储所有内容以用于输出。

,并避免使用fetchall和类似的方法......输出的每一行...