我通过HTML格式通过CSV文件插入大量数据。
我使用了set_time_limit(0);
,因此脚本会一直运行,直到不执行整个操作。
致命错误:超出最长执行时间300秒 第135行的C:\ xampp \ htdocs \ clytics \ include \ clytics.database.php
现在,我正试图抓住这个致命的错误。
答案 0 :(得分:2)
我使用过set_time_limit(0);这样脚本一直运行到整个 不执行操作。
可能还需要更多内存。基本上你的代码只是一个猪和一个你需要驯服它吞噬资源的方式。
但这只是您可能面临的整体架构问题的切入点。
特定于此问题,您的代码中是否会覆盖set_time_limit(0);
的值?
另外,您是通过命令行还是Apache中的PHP运行此脚本?因为CLI配置php.ini
与php.ini
的Apache模块配置完全不同。
例如,在Ubuntu上,Apache PHP php.ini
就在这里:
/etc/php5/apache2/php.ini
但是命令行(CLI)php.ini
在这里:
/etc/php5/cli/php.ini
如果您想强制您的脚本占用内存而不管您的配置设置如何,您可以将其添加到PHP文件的顶部:
ini_set('MAX_EXECUTION_TIME', -1);
如果有人在set_time_limit
上阅读更多内容,则会出现:
设置允许脚本运行的秒数。如果是这样的话 到达后,脚本返回致命错误。默认限制为30 秒,或者,如果存在,则定义的max_execution_time值 php.ini中。
然后阅读max_execution_time
,这就出现了:
设置允许脚本运行的最长时间(以秒为单位) 在它被解析器终止之前。这有助于防止不良 从捆绑服务器编写脚本。默认设置为30。 从命令行运行PHP时,默认设置为0。
然而,魔术300
号出现了:
您的网络服务器可能还有其他超时配置 中断PHP执行。 Apache有一个Timeout指令,IIS有一个 CGI超时功能。 默认为300秒。查看您的网络服务器 有关具体细节的文档。
所以现在你知道300来自哪里了。但是,执行ini_set('MAX_EXECUTION_TIME', -1);
可以让您在没有超时的情况下运行脚本。
最后一点信息,如果这些都不起作用:查看max_input_time
:
这设置允许脚本解析的最长时间(以秒为单位) 输入数据,如POST和GET。时间从PHP开始的那一刻开始 在服务器上调用,在执行开始时结束。
虽然max_input_time
可能似乎没有关联,但在某些版本的PHP中,存在max_input_time
和max_execution_time
直接连接的错误。