PDOStatement::closeCursor
  (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)
PDOStatement::closeCursor — 
   Fecha o cursor, permitindo que a instrução seja executada novamente
  
  
 
  Descrição
  
   public PDOStatement::closeCursor(): 
bool 
  
  
   Este método é útil para drivers de banco de dados que não suportam a execução de
   um objeto PDOStatement quando um object PDOStatement executado anteriormente ainda
   tem registros não recebidos. Se o driver do banco de dados sofrer desta limitação,
   o problema pode se manifestar em um erro de "fora-de-sequência".
  
  
   PDOStatement::closeCursor() é implementado como um
   método opcional específico do driver (permitindo máxima eficiência), ou como
   o método PDO genérico se nenhuma função específica do driver estiver instalada.
   O método PDO genérico é semanticamente o mesmo que escrever o seguinte código no
   script PHP:
   
<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>
    
  
  
 
  Parâmetros
  Esta função não possui parâmetros.
  
 
  Valor Retornado
  
   Retorna true em caso de sucesso ou false em caso de falha.
  
  
 
 
  Exemplos
  
   
    Exemplo #1 Um exemplo de PDOStatement::closeCursor()
    
     No exemplo a seguire, o objeto PDOStatement $stmt
     retorna múltiplos registros mas a aplicação busca apenas a primeira
     linha, deixando o objeto PDOStatement em um estado com linhas não recebidas.
     Para assegurar que a aplicação irá funcionar com todos os drivers de banco de dados, o
     autor insere uma chamada a PDOStatement::closeCursor()
     na variável $stmt antes de executar o objeto
     PDOStatement $otherStmt.
    
<?php
/* Cria um objeto PDOStatement */
$stmt = $dbh->prepare('SELECT foo FROM bar');
/* Cria um segundo objeto PDOStatement */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');
/* Executa a primeira instrução */
$stmt->execute();
/* Busca somente a primeira linha do resultado */
$stmt->fetch();
/* A chamada a closeCursor() pode ser requerida por alguns drivers */
$stmt->closeCursor();
/* Agora pode-se executar a segunda instrução */
$otherStmt->execute();
?>