在执行以下代码块时,我很难理解为什么 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突然死亡。
谢谢你的时间。