XMLReader + while + много данных = непонятно что

Sync

Новичок
XMLReader + while + много данных = непонятно что

Импортирую прайсы на тур-поездки. Прайс имеет такую структуру
PHP:
<prices>
<element P="4369" D="2007-03-04" aFCK="386" aTCK="26" htlBK="14" htlK="2161" htlRK="26" htlN="14" roomTK="7" roomAK="74" roomNA="2" roomNC="2" roomCK="186"/>
<element P="4669" D="2007-03-18" aFCK="386" aTCK="26" htlBK="14" htlK="2161" htlRK="26" htlN="14" roomTK="7" roomAK="74" roomNA="2" roomNC="2" roomCK="186"/>
<element P="4709" D="2007-03-25" aFCK="386" aTCK="26" htlBK="14" htlK="2161" htlRK="26" htlN="14" roomTK="7" roomAK="74" roomNA="2" roomNC="2" roomCK="186"/>
<element P="4389" D="2007-03-11" aFCK="386" aTCK="26" htlBK="14" htlK="2161" htlRK="26" htlN="14" roomTK="7" roomAK="74" roomNA="2" roomNC="2" roomCK="186"/>
</prices>
PHP:
Импорт:

        $xml = new XMLReader();
        
        $xml->open($spo_url);

        while ($xml->read())
        {
            if (!$xml->getAttribute('aFCK')) {
            	continue;
            }

            $data[] = array(
                         'price'             => $xml->getAttribute('P'),
                         'adults'            => $xml->getAttribute('roomNA'),
                         'childs'            => $xml->getAttribute('roomNC'),
                         'date'              => $xml->getAttribute('D'),
                         'days'              => $xml->getAttribute('htlD'),
                         'nights'            => $xml->getAttribute('htlN'),
                        );

            $db->auto_insert('prices',$data);

            if ($k % 100 == 0) {
            	echo $k.'<br>';
            }
            $k++;
        }

        echo count($data);
        die("END OF WHILE");
Объем этих прайсов от 100К до 30М. Пример: файл объемом 4М имеет ~30 000 элементов.
На файлах, больших чем 6-7М скрипт отрабатывает 10-15 тыс. итераций while и все. Более того, не выводится даже сообщение
END OF WHILE, хотя скрипт уже завершил работу. В ошибках отключены только нотисы.
Вот результат работы:

PHP:
....
9800
9900
10000
10100
10200
10300
Все, больше ничего. Это вывод $k.

Пробовал закоментить вставку в таблицу $db->auto_insert('prices',$data), тоже самое.

Не пойму это странное поведение. В чем может быть проблема?
 

Scud

Новичок
М.б. скрипт превысил отведённое ему на исполнение время?
 

Sync

Новичок
Ну вывалилась бы тогда Fatal Error.
Стоит 300 сек. Он выполняется не более минуты.
 
Сверху