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' );

如果还没有,就去查看服务器日志,看看是什么原因。

原文地址:https://www.cnblogs.com/paopao123/p/10723667.html