Необходимо выгрести большое кол-во данных из базы данных и положить в Excel так, чтобы по пути не закончилась память.
Сейчас память заканчивается в месте:
$command->query();
Насколько я знаю query() возвращает CDbDataReader, чтобы можно было получать по одной строчке, а не весь массив разом.
Я предполагал, что при таком подходе весь результат запроса не будет храниться в памяти, но она заканчивается.
Есть вариант сделать метод, который будет вытаскивать по 100 записей пока не закончится таблица.
Есть ли вариант обойтись без дополнительных методов, а получать и хранить в памяти по 1 строчке?
Наткнулся на такой вот пост https://stackoverflow.com/questions/6895098/pdo-mysql-memory-consumption-with-large-result-set
Можно ли это сделать с CDbCommand?
Как бы вы решили такую задачу?
Код из документации:
$dataReader=$command->query();
// многократно вызываем read() до возврата методом значения false
while(($row=$dataReader->read())!==false) { … }
http://www.yiiframework.com/doc/guide/1.1/ru/database.dao#sec-4
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Создайте двумерный массив А(N,M)Значения N и M вводит пользователь с клавиатуры
Кто-то знает рабочие пути взаимодейтсвия с SoundCloud при разработке приложения под Android? https://githubcom/soundcloud/java-api-wrapper, как я понял, уже не вариант
ЗдравстуйтеНе могу записать данные в файл который находится в папке resources