Het hangt af van welke database u gebruikt en uw databaseconfiguratie.
Voor MySQL moet u ervoor zorgen dat u gebufferde query's gebruikt. In PDO stel je het als volgt in:
$myPdo->setAttribute(PDO::MYSQL_ATTR_USE_BUFFERED_QUERY, true);
Dit betekent dat alle gegevens naar de client worden verzonden (niet hetzelfde als alles ophalen in PHP).
Het andere (waarschijnlijk slechtere) alternatief is om een nieuwe databaseverbinding te openen wanneer u merkt dat een query wordt uitgevoerd terwijl de resultatenset nog open is.
De normale mysql_query()
gebruikt een gebufferde query, dus dat werkt met meerdere resultatensets.