PHP 5.3 Назначение массива Windows вызывает ошибку - PullRequest
2 голосов
/ 19 февраля 2011

Я изо всех сил пытаюсь понять, почему 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, а ошибочная строка - это присвоение массива.

Назначение вызывает ошибку в php после примерно 9100 записей.

Если этот цикл был отсчитан, так что управление завершением контролируется, я вижу, что php потребляет около 25 Мб памяти, по конфигурации это разрешено 256.

Ошибка записи не всегда одинакова, она может варьироваться на 3 или 4 индекса.

Код на самом деле довольно бессмысленный, но в целом группирует записи одного и того же productID, но мне очень интересно узнать, что он может сделать, что может привести к внезапной смерти php.

Спасибо за ваше время.

1 Ответ

0 голосов
/ 21 февраля 2011

Я не уверен, что вы имеете в виду под ошибкой.Но если это означает, что сценарий завершается, я предлагаю включить журнал ошибок и посмотреть, что будет в последнем сообщении об ошибке.В любом случае, это может быть ошибка PHP, поэтому всегда рекомендуется сообщать о ней http://bugs.php.net/,, так как это правильное место, где разработчики PHP ищут возможные ошибки.

...