我正在努力理解为什么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突然死亡。
感谢您的时间。
答案 0 :(得分:0)
我不确定你的错是什么意思。但是如果它意味着它使脚本终止,我建议启用错误日志并查看最终的错误消息。在任何情况下,它可能都是PHP错误,因此建议您始终将其报告给http://bugs.php.net/,因为这是PHP开发人员查看最终错误的正确位置。