我尝试了一项活动来检查是否
> FOR / WHILE LOOP
是否失败,如果它循环了几百万条记录......
我的活动
我在表格中有超过1000000条记录,如果我提取并打印它们
通过for循环并使用命令行执行此脚本,它成功运行..
但是当我在网络浏览器中尝试它时,它会卡住并关闭我的浏览器......
所以我想知道它是 PHP 的失败(显然不是在命令行中工作)..
或 WEB SERVER ???
失败如果我必须在实时网络应用程序中出现这种情况该怎么办?
我应该切换到更强大的Web服务器,如果是,那么哪一个...... ??
答案 0 :(得分:2)
我猜测你已经遇到了最大执行时间限制,该限制在命令行上是无限制的,但在Web服务器上默认为30秒。尝试在脚本开头添加以下行以删除限制:
set_time_limit(0);
来自官方的php docs
max_execution_time
设置以秒为单位的最长时间a 允许脚本在解析器终止之前运行。这个 有助于防止写得不好的脚本占用服务器。该 默认设置为30.从命令行运行PHP时 默认设置为0。
答案 1 :(得分:0)
如果你想在浏览器上打印1 000 000条记录,那你将度过难关......
首先 - FuzzyTree所说的 - 执行时间。但是,如果你说它在cli
中有效,我想这不是问题。
这个数据量的问题可能是浏览器,它根本无法处理这么多!在尝试访问该页面时,请查看您的CPU
和RAM
使用情况。
如果您真的需要显示用户数百万条记录,请在用户使用ajax
到达页面底部时使用分页或加载新记录。