Nesouvisí přímo s PHP7. Problém je způsoben novým mysqlnd ovladač, takže stejný problém můžete zažít i s PHP 5.x. Je to vlastně oprava chyby, protože dokonce i předtím, než byla paměť stále přidělena, ale nezapočítávala se do memory_limit .
Chcete-li se vyhnout problému s pamětí, musíte použít dotazy bez vyrovnávací paměti pro velké sady výsledků.
Takže pro dotaz, který očekává velkou datovou sadu, nastavte správné nastavení takto:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
Pro další čtení mám slušné vysvětlení v mém tutoriálu PDO , díky Nikic, jehož kritická zpětná vazba byla neocenitelná.