У меня есть таблица из которой я выбираю данные, и их нужно записать в Excel файл через PHPExcel.
В таблице может быть от 100к до 1 млн записей (смотря какие категории выберет пользователь). Если я пытаюсь все 100к строк записать сразу, то оно говорит что проблема с памятью PHP. (Увеличивать память в конфигах не имею права).
Я хочу выбирать по 1000 записей. Как такого результата добиться? То есть надо чтобы оно взяло сначала 1-1000 записей (у которых ID может быть начинаться не с 0, и не с 1 а с произвольного числа). Записало их, дальше с 1001 по 2000 записей. Как построить запрос? Нужен оффсет? Какой цикл сделать? Я делал типо LIMIT 1000 OFFSET 1000 но как понял, то это совсем уж не правильно.
код сейчас примерно такой:
$i = 0; // делаем счётчик (хотел чтоб каждые 1000 записей выбирало)
do {
$i += 1000;
$sql = "SELECT ....... LIMIT 1000 OFFSET $i";
$stmt = $this->prepare($sql);
$stmt->execute();
$result = $stmt->fetchAll(\PDO::FETCH_ASSOC);
} while ($result);