Det beror på vilken databas du använder och din databaskonfiguration.
För MySQL måste du se till att du använder buffrade frågor. I PDO ställer du in det så här:
$myPdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
Det betyder att all data kommer att skickas till klienten (inte samma sak som att hämta allt i PHP).
Det andra (förmodligen värre) alternativet är att öppna en ny databasanslutning när du upptäcker att en fråga körs med en resultatuppsättning fortfarande öppen.
Den normala mysql_query()
använder en buffrad fråga, så det fungerar med flera resultatuppsättningar.