Non è direttamente correlato a PHP7. Il problema è dovuto al nuovo mysqlnd driver, quindi puoi riscontrare lo stesso problema anche con PHP 5.x. In realtà è una correzione di bug, perché anche prima che la memoria fosse ancora allocata, ma non contava per memory_limit .
Per evitare problemi di memoria devi usare query senza buffer per i grandi risultati.
Quindi, per la query che prevede un set di dati di grandi dimensioni, imposta l'impostazione corretta in questo modo:
$pdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, false);
Per ulteriori letture, ho una spiegazione decente nel mio tutorial PDO , grazie a Nikic, il cui feedback critico è stato inestimabile.