PHP脚本运行到完成,但正在超时
我有一个PHP脚本,其中包含许多数据库查询,并复制了几个数据库表,因此,它需要相当长的时间才能完成。我遇到的问题是,它正在超时。然而,它似乎已经完成,这是令人困惑的 脚本在完成后将重定向到视图。然而,即使在将时间限制延长到5分钟后,它也会给我一个超时错误页面。但是,当我检查数据库时,所有表都已被完全复制,这表明脚本已完成 我是不是错过了一些简单的东西?相对于重定向到视图,是否存在超时的一般原因?我会发布一些代码,但是整个脚本大约有1000行代码,所以在这里显示它似乎有点广泛 另外,我正在使用CodeIgniterPHP脚本运行到完成,但正在超时,php,codeigniter,Php,Codeigniter,我有一个PHP脚本,其中包含许多数据库查询,并复制了几个数据库表,因此,它需要相当长的时间才能完成。我遇到的问题是,它正在超时。然而,它似乎已经完成,这是令人困惑的 脚本在完成后将重定向到视图。然而,即使在将时间限制延长到5分钟后,它也会给我一个超时错误页面。但是,当我检查数据库时,所有表都已被完全复制,这表明脚本已完成 我是不是错过了一些简单的东西?相对于重定向到视图,是否存在超时的一般原因?我会发布一些代码,但是整个脚本大约有1000行代码,所以在这里显示它似乎有点广泛 另外,我正在使用Co
提前感谢您的帮助 PHP脚本可能没有超时,但您正在使用的浏览器已放弃等待任何结果。如果是这样的话,你需要以不同的方式处理整个事情。例如,在后台运行脚本,并通过AJAX或其他方式报告定期更新 这样想:
本例中有两个单独的超时,但您的查询是以两种方式完成的。超时在脚本中的何处?计时器不是一个硬性的快速限制,它不会在脚本到达时立即终止脚本。如果php正忙于在外部库中执行某些操作(例如,等待mysql调用完成),它将不会检查计时器并中止db调用。当db调用返回并且控件返回php时,它将检查计时器。换句话说,您的浏览器决定您的时间到了,而不是php。我想可能是浏览器超时了。但是,为什么在浏览器超时后会立即复制这些表,而不考虑时间?例如,如果我将超时限制设置为30秒,它将在30秒后超时,但会复制表。如果我将超时限制设置为180秒,它会在3分钟后超时,但表会被复制。它们是需要30秒以上时间才能复制的大型表吗?你在使用什么数据库?也许DBMS已经收到了copy命令,即使PHP已经停止,它也会继续复制。我不认为它们是大表,但它们有很多。我正在使用mySQL。是的,它似乎工作得很好,除了用户出现超时错误。