PHP无法完成循环

时间:2010-08-13 05:36:04

标签: php

我有一张约450,000排的桌子。该表需要更新一些派生字段。

我的循环是:

 $sql = "SELECT * FROM table_name";
 if (!($r = @ mysql_query($sql, $db_connection))) die("Mysql query $sql . Error " . mysql_errno() . " : " . mysql_error());
 while ($row = mysql_fetch_assoc($r))  
 {
    // do a number of calculations, which create some $sql to update the record
$sql .= " WHERE p_id = $id"; // $id is the records id
if (!($result = @ mysql_query($sql, $db_connection))) die("Mysql query $sql . Error " . mysql_errno() . " : " . mysql_error());
 }

此代码未通过所有记录。从网页中调用php脚本,网页不响应。当我查看表格时,它已经更新了大约60,000个,其余的记录都没有得到解决。

这曾经工作得很好,但是因为我将Ubuntu升级到最新版本,所以这种情况正在发生。我尝试在php.ini中增加内存但是没有用。

想点什么?

3 个答案:

答案 0 :(得分:1)

您可能需要使用set_time_limit($seconds);或php.ini中的max_execution_time参数

来增加页面的时间限制

答案 1 :(得分:1)

你可能会达到PHP最大执行时间。要查看是否是这种情况,请查看Web服务器日志文件。最后寻找这样的东西:

PHP Fatal error: Maximum execution time of 30 seconds exceeded in ...

如果是这样,你可以编辑你的php.ini以延长超时时间:

max_execution_time = 9999

如果不是这样,服务器日志仍然可以告诉你脚本停止的原因。

答案 2 :(得分:0)

您还应该增加php.ini中的执行时间限制。问题可能是您的脚本运行时间过长。