Tu naprawdę jest wszystko napisane:
Cytat
(...) To ensure that the application will work with all database drivers, the author inserts a call to PDOStatement::closeCursor() on $stmt before executing the $otherStmt PDOStatement object.
<?php
/* Create a PDOStatement object */
$stmt = $dbh->prepare('SELECT foo FROM bar');
/* Create a second PDOStatement object */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');
/* Execute the first statement */
$stmt->execute();
/* Fetch only the first row from the results */
$stmt->fetch();
/* The following call to closeCursor() may be required by some drivers */
$stmt->closeCursor();
/* Now we can execute the second statement */
$otherStmt->execute();
?>
(...)
Generalnie lepiej używać closeCursor() dla lepszej przenośności pomiędzy różnymi bazami danych, nigdy nic nie wiadomo, kiedyś może okazać się, że Twój Klient będzie chciał zmienić typ bazy danych na inny, teoretycznie PDO to umożliwia, więc lepiej zamykać kursor, aby uniknąć potencjalnych problemów.