Dit is een beetje een slechte eigenschap van PDO die niet goed gedocumenteerd is. De methode closeCursor werkt niet wanneer de instructie een opgeslagen procedure heeft uitgevoerd. U moet de nextRowSet-methode gebruiken. Dit is wat ik gebruik
while($sth->nextRowSet())
{
$sth->fetchAll();
}
$sth->closeCursor();