Не е пряко свързано с PHP7. Проблемът се дължи на нов mysqlnd драйвер, така че можете да изпитате същия проблем дори и с PHP 5.x. Това всъщност е корекция на грешки, защото дори преди паметта все още е била разпределена, но не се брои към memory_limit .
За да избегнете проблем с паметта, трябва да използвате небуферирани заявки за големите набори от резултати.
Така че за заявката, която очаква голям набор от данни, задайте правилната настройка по следния начин:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
За по-нататъшно четене имам прилично обяснение в моя урок за PDO , благодарение на Nikic, чиято критична обратна връзка беше безценна.