Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/269.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP脚本的运行时间比最大执行时间长很多?_Php_Timeout_Execution Time - Fatal编程技术网

PHP脚本的运行时间比最大执行时间长很多?

PHP脚本的运行时间比最大执行时间长很多?,php,timeout,execution-time,Php,Timeout,Execution Time,PHP作为Apache模块运行 脚本以:ini\u集('max\u execution\u time',300)开始 它所做的基本上是连接到一个数据库,执行一个大的SELECT查询并循环遍历结果,将结果写入一个文件,并在每次写入后使用explicitflush()回显“result ok” 没有sleep()调用 这是一个“测试”脚本,由我的一位同事编写,用于备份,打算运行几个小时!我想我知道脚本执行的时间限制,并认为他的脚本将在300秒后超时。。。 但它没有 它是从web浏览器调用的。页面保持

PHP作为Apache模块运行

脚本以:
ini\u集('max\u execution\u time',300)开始

它所做的基本上是连接到一个数据库,执行一个大的
SELECT
查询并循环遍历结果,将结果写入一个文件,并在每次写入后使用explicit
flush()回显“result ok”

没有
sleep()
调用

这是一个“测试”脚本,由我的一位同事编写,用于备份,打算运行几个小时!我想我知道脚本执行的时间限制,并认为他的脚本将在300秒后超时。。。 但它没有

它是从web浏览器调用的。页面保持打开状态,我们可以看到结果被实时回响

为什么不暂停? 更奇怪的是,其中一个测试发出了一个“超过300秒的最大执行时间”,但这至少在执行2小时后出现


这是怎么回事?max_execution_time和flush()之间有什么需要理解的吗?或者浏览器窗口一直处于打开状态吗?

我能想到的唯一可能导致这种情况的原因是PHP是否在安全模式下运行。ini_get('max_execution_time')应该告诉您是否实际设置了它

编辑:在上面看到你的评论

echo ini_get('max_execution_time');//说300


如果报告了300,而你的电脑不在Windows上,@mishu很可能是对的。您的SELECT查询可能需要数小时。

正如您在“设置时间限制”功能的手册页上所看到的,您设置的总执行时间仅影响实际脚本。数据库查询或任何其他外部调用所花费的时间不计算在内(如果操作系统不是Windows)。

ini_get('max_execution_time')结果如何?echo ini_get('max_execution_time');//说300尝试增加php.ini并重新启动apache我认为你和@GOPalmer是对的,我想我读到了一些地方,数据库查询被考虑到了最大执行时间,但它们没有。我们确实有运行了很长时间的查询。谢谢