Det er ikke direkte PHP7-relateret. Problemet skyldes ny mysqlnd driver, så du kan opleve det samme problem selv med PHP 5.x. Det er faktisk en fejlrettelse, fordi selv før hukommelsen stadig var allokeret, men den tæller ikke med i memory_limit .
For at undgå et hukommelsesproblem skal du bruge forespørgsler uden buffer for de store resultatsæt.
Så for den forespørgsel, der forventer et stort datasæt, skal du indstille den korrekte indstilling som denne:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
Til den videre læsning har jeg en anstændig forklaring i min PDO-tutorial , tak til Nikic, hvis kritiske feedback var uvurderlig.