Det är inte direkt PHP7-relaterat. Problemet beror på nya mysqlnd drivrutin, så att du kan uppleva samma problem även med PHP 5.x också. Det är faktiskt en buggfix, eftersom till och med innan minnet fortfarande tilldelades, men det räknades inte mot memory_limit .
För att undvika ett minnesproblem måste du använda obuffrade frågor för de stora resultatuppsättningarna.
Så, för frågan som förväntar sig en stor datamängd, ställ in rätt inställning så här:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
För vidare läsning har jag en anständig förklaring i min PDO-handledning , tack vare Nikic, vars kritiska feedback var ovärderlig.