Jest to trochę słaba cecha PDO, która nie jest dobrze udokumentowana. Metoda closeCursor nie działa, gdy instrukcja wykonała procedurę składowaną. Musisz użyć metody nextRowSet. Oto czego używam
while($sth->nextRowSet())
{
$sth->fetchAll();
}
$sth->closeCursor();