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通过头位置重复调用自身,绕过了max_脚本_执行_Php - Fatal编程技术网

PHP通过头位置重复调用自身,绕过了max_脚本_执行

PHP通过头位置重复调用自身,绕过了max_脚本_执行,php,Php,我有一个脚本,可以执行大量的数据库操作 这一切都很好,直到我到达了一个更高数量的数据库,在那里触发操作。现在我与max_脚本_执行超时冲突 当我重定向到下一个db by头位置的带有参数的同一脚本时,是否可以逐个处理数据库 或者这不会影响max_脚本的执行和超时吗?试试这个 在php脚本的顶部添加这一行 ini_set('max_execution_time', 0); 但是,有一点要记住,这不是一个好办法。您应该检查脚本以最小化执行时间。首先,您不应该通过浏览器执行长时间运行的作业。使用cro

我有一个脚本,可以执行大量的数据库操作

这一切都很好,直到我到达了一个更高数量的数据库,在那里触发操作。现在我与max_脚本_执行超时冲突

当我重定向到下一个db by头位置的带有参数的同一脚本时,是否可以逐个处理数据库

或者这不会影响max_脚本的执行和超时吗?

试试这个

在php脚本的顶部添加这一行

ini_set('max_execution_time', 0);

但是,有一点要记住,这不是一个好办法。您应该检查脚本以最小化执行时间。

首先,您不应该通过浏览器执行长时间运行的作业。使用cron作业或其他不受web服务器强制超时限制的后台任务。更不用说它会消耗web服务器本身的资源。重定向是不可靠的。用户代理可能选择不加载下一页,或者干脆无法加载下一页。如果希望可靠地完成操作,则应使用服务器端工作程序,该工作程序从用户填写的队列中完成命令。这可能会起作用,但会非常脆弱,因为它依赖于用户和浏览器的行为,而这无法保证。更好的选择可能是通过exec使用PHPCLI,因为它通常没有超时限制。另一种选择是,如果您有权限执行操作,则只需增加超时时间,因为您可以在Web界面上选择不同的操作。我想我无法通过exec来运行脚本服务器端的限制,因为共享主机的限制。在这种情况下,您仍然可以选择将操作划分为块,但我认为如果您以某种方式自己插入脚本,这是一个更好的解决方案。这避免了前面提到的失败客户机的一些问题。如果您的宿主解决方案支持CRONJOB,您应该真正考虑使用.Max极限是由HOSTER给出的:当PHP以安全模式运行时,这将不起作用,并且可能被WebServer超时行为覆盖。此外,它不能解决OP的根本问题。