php 百万级数据文件导出
背景:最近一个需求是从mysql里面读取数据(有点大),然后导出为csv文件
问题 :发现导出的过程中自己中断了,没有报错 。
第一反应是测试导出一个小一点的数据(少查几条),发现没问题 。
查看导出数据多的时候的报错,发现没有。
在代码头部加上
error_reporting( E_ALL ); ini_set( 'display_errors', 'on' );
发现报错
原来原因是数据太大 ,变量不能接收到这么大的值
所以我们在文件开头加上
ini_set("memory_limit","20480M");
我这里将变量的最大值设置为 20G,看自己的服务器运行内存而定。
再测试,发现可以了。
但是当我们导出数据时,打开csv文件,发现 ,我们不管这个
注:在调试的过程中,我刚开始以为是响应时间问题,但是后来调试发现不是。所以一定要找报错,不要自己以为。 如果程序没有报错,那就在php文件前面添加
error_reporting( E_ALL ); ini_set( 'display_errors', 'on' );
如果还没有,就去查看服务器日志,看看是什么原因。