Em vez de ler todo o resultado de sua consulta de banco de dados em uma variável com fetchAll(), busque linha por linha: while($row = $query->fetch()) { ... }