PDOStatement::closeCursor: cierra el cursor para que la instrucción se pueda ejecutar nuevamente. (PHP 5 >= 5.1.0, PECL pdo >= 0.9.0)
bool PDOStatement::closeCursor ( vacío )
PDOStatement::closeCursor() libera la conexión al servicio de base de datos para que se puedan emitir otras declaraciones SQL, pero deja la declaración en un estado en el que se puede ejecutar nuevamente.
Este método es muy útil para los controladores de bases de datos que no admiten la ejecución de otro objeto PDOStatement cuando todavía hay filas no recuperadas en el último objeto PDOStatement ejecutado. Si el controlador de la base de datos está sujeto a esta limitación, pueden ocurrir errores de desorden.
PDOStatement::closeCursor() se implementa como un método opcional específico del controlador (el más eficiente) o se implementa como un recurso PDO general cuando no hay una funcionalidad específica del controlador. La semántica alternativa general es la misma que la del siguiente código PHP:
<?phpdo { while ($stmt->fetch()) ; si (!$stmt->nextRowset()) break;} while (true);?>
Devuelve VERDADERO en caso de éxito o FALSO en caso de error.
En el siguiente ejemplo, el objeto $stmt PDOStatement devuelve varias filas, pero la aplicación solo recupera la primera fila, dejando el objeto PDOStatement en un estado sin filas recuperadas. Para garantizar que la aplicación pueda ejecutarse normalmente con todos los controladores de la base de datos, $stmt llama a PDOStatement::closeCursor() una vez antes de ejecutar el objeto $otherStmt PDOStatement.
<?php/* Crear un objeto PDOStatement */$stmt = $dbh->prepare('SELECT foo FROM bar');/* Crear un segundo objeto PDOStatement */$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');/* Ejecutar la primera declaración*/$stmt->execute();/* Obtenga solo la primera fila del conjunto de resultados */$stmt->fetch();/* Algunos controladores pueden requerir la siguiente llamada a closeCursor() */$stmt->closeCursor();/* Ahora puede ejecutar la segunda Declaración*/$otherStmt->execute();?>