PHP超时被重写,没有明确的解释
我有一个没有定义任何“set\u time\u limit()”的PHP脚本。 PHP.ini最大执行时间=30 该脚本打开一个mysql连接,并在同一个连接上执行变量循环查询,然后在处理后关闭。 循环是可变的,脚本可以在1秒到1000秒之间的任何位置运行。 我希望脚本在默认的30秒限制下中止,但事实并非如此 我怀疑mysql连接正在取代PHP超时默认值,并阻止脚本中止。有人知道这是否可能吗 脚本非常复杂,放在这里没有意义。但它肯定没有时间限制 注意:我不想强加时间限制,这种行为实际上对我的脚本有好处。我只是想知道更多关于这种行为的信息。多亏了Jono20201 所以这个问题解释了这一点: 总结:没有考虑脚本之外花费的时间(例如,MySQL运行查询),因此PHP超时被重写,没有明确的解释,php,mysql,timeout,Php,Mysql,Timeout,我有一个没有定义任何“set\u time\u limit()”的PHP脚本。 PHP.ini最大执行时间=30 该脚本打开一个mysql连接,并在同一个连接上执行变量循环查询,然后在处理后关闭。 循环是可变的,脚本可以在1秒到1000秒之间的任何位置运行。 我希望脚本在默认的30秒限制下中止,但事实并非如此 我怀疑mysql连接正在取代PHP超时默认值,并阻止脚本中止。有人知道这是否可能吗 脚本非常复杂,放在这里没有意义。但它肯定没有时间限制 注意:我不想强加时间限制,这种行为实际上对我的脚本
set\u time\u limit
和max\u execution\u time
没有什么可以做的
除了在窗户上。根据PHP文档:
set_time_limit()函数和配置指令
最大执行时间仅影响脚本的执行时间
它本身在执行之外的活动上花费的任何时间
例如使用system()的系统调用、流操作、,
确定最大值时不包括数据库查询等
脚本已运行的时间。在Windows上不是这样
测量的时间是真实的
也许这与此相关:您是否从命令行运行此脚本?运行CLI时,最长执行时间为0。@Devon,不,我正在客户端服务器上运行。@Jono20201,谢谢提示:这就解释了。我会更新我的问题来说明这一点。