PHP 5.3 Windows阵列分配导致错误

时间:2011-02-19 10:04:43

标签: php arrays fault

我正在努力理解为什么PHP在没有反馈或错误的情况下出错(超出了Windows错误日志,php5错误模块php中的错误),同时执行以下代码块:

$projects = array(); 
    $pqRes = $connection->getResult("SELECT big query");         

    //build an array by project id
    while($record = sqlsrv_fetch_array($pqRes))
    {
        if(! array_key_exists($record['ProjectID'],$projects))
          {
              $projects[$record['ProjectID']] = array();
          }

          $projects[$record['ProjectID']][] = $record;   //this line faults php after about 9100 records
    }

无论是从sql资源中提取对象还是数组,结果是相同的,并且违规行是数组赋值。

在约9100条记录之后,该分配导致php出现故障。

如果这个循环被计算出来,所以执行终止被控制,我可以看到php已经消耗了大约25mb的内存,通过它的配置允许256。

错误记录并不总是相同,它可能会有3或4个索引。

代码实际上是毫无意义的但是在一个回合的方式组合相同productID的记录,但我很有兴趣知道它可以做什么可能导致php突然死亡。

感谢您的时间。

1 个答案:

答案 0 :(得分:0)

我不确定你的错是什么意思。但是如果它意味着它使脚本终止,我建议启用错误日志并查看最终的错误消息。在任何情况下,它可能都是PHP错误,因此建议您始终将其报告给http://bugs.php.net/,因为这是PHP开发人员查看最终错误的正确位置。