Ik denk dat je de dingen te ingewikkeld maakt met je do/while-lus.
Probeer in plaats daarvan een eenvoudige while-lus:
$pdo = /* connection stuff here */
$sql = "select 1; select 2; select 3; select 4;";
$statement = $pdo->query($sql);
while($rowset = $statement->fetchAll()){
//do stuff
$statement->nextRowset();
}
Dit gaat door met herhalen terwijl rowset geen valse waarde heeft die dan precies zou moeten werken zoals u verwacht.