PHP脚本运行完成,但超时

时间:2016-02-25 19:57:18

标签: php codeigniter

我有一个PHP脚本,其中包含许多数据库查询,并复制了几个数据库表,因此,完成需要很长时间。我得到的问题是,它是超时的。但是,它似乎已经完成,这令人困惑。

该脚本假设在完成后重定向到视图。但是,即使将时间限制延长到5分钟,它也会给出超时错误页面。但是,当我检查数据库时,所有表都已完全复制,表明脚本已完成。

我在这里错过了一些简单的东西吗?有没有一般的原因它会超时而不是重定向到视图?我会发布一些代码,但整个脚本大约有1000行代码,因此在这里显示它似乎有点广泛。

另外,我正在使用CodeIgniter。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

PHP脚本可能没有超时,但您正在使用的浏览器已放弃等待任何结果。如果是这种情况,你将需要以不同的方式处理整个事情。例如,在后台运行脚本并通过AJAX或其他方式报告定期更新。

这样想:

  1. 您的浏览器会向您的服务器询问网页并等待结果。

  2. 您的服务器运行您的PHP脚本,然后要求MySQL运行查询,并等待结果。

  3. MySQL运行查询并将结果返回给PHP。

  4. PHP会进行更多处理并将结果返回给浏览器。

  5. 在第3步,PHP可能已经超时并且不再存在。 MySQL不知道它在工作的时候,它只是完成了它的工作,然后把结果交还给了什么。

    在步骤4,浏览器可能已超时并断开连接。 PHP不会知道,所以它完成了它的工作,然后将结果返回到任何内容。

    在此示例中,这是两个单独的超时,但您的查询都以任何方式完成。