PDOStatement::closeCursor
  (PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.9.0)
PDOStatement::closeCursor — 
   Schließt den Cursor, damit die Anweisung erneut ausgeführt werden kann
  
  
 
  Beschreibung
  
   public PDOStatement::closeCursor(): 
bool 
  
  
   Diese Methode ist nützlich für Datenbanktreiber, die die Ausführung eines
   PDOStatement-Objekts nicht unterstützen, wenn ein zuvor ausgeführtes
   PDOStatement-Objekt noch nicht abgrufene Zeilen enthält. Wenn der
   Datenbanktreiber diese Einschränkung aufweist, kann es zu einem
   Out-of-Sequence-Fehler kommen.
  
  
   PDOStatement::closeCursor() ist entweder als
   optionale treiberspezifische Methode implementiert (für maximale
   Effizienz), oder als generischer PDO-Fallback, wenn keine
   treiberspezifische Funktion installiert ist. Der generische PDO-Fallback
   ist semantisch dasselbe wie der folgende Code in einem PHP-Skript:
   
<?php
do {
    while ($stmt->fetch())
        ;
    if (!$stmt->nextRowset())
        break;
} while (true);
?>
    
  
  
 
  Parameter-Liste
  Diese Funktion besitzt keine Parameter.
  
 
  Rückgabewerte
  
   Gibt bei Erfolg true zurück. Bei einem Fehler wird false zurückgegeben.
  
  
 
 
  Beispiele
  
   
    Beispiel #1 PDOStatement::closeCursor()-Beispiel
    
     Im folgenden Beispiel gibt das PDOStatement-Objekt
     $stmt mehrere Zeilen zurück, aber die Anwendung ruft
     nur die erste Zeile ab, wodurch das PDOStatement-Objekt in einem Zustand
     mit nicht abgerufenen Zeilen verbleibt. Um sicherzustellen, dass die
     Anwendung mit allen Datenbanktreibern funktioniert, wird hier
     PDOStatement::closeCursor() für
     $stmt aufgerufen, bevor das PDOStatement-Objekt
     $otherStmt ausgeführt wird.
    
<?php
/* Erstellen eines PDOStatement-Objekts */
$stmt = $dbh->prepare('SELECT foo FROM bar');
/* Erstellen eines zweiten PDOStatement-Objekts */
$otherStmt = $dbh->prepare('SELECT foobaz FROM foobar');
/* Ausführen der ersten Anweisung */
$stmt->execute();
/* Nur die erste Zeile der Ergebnisse wird abgerufen */
$stmt->fetch();
/* Bei manchen Treibern kann der folgende Aufruf von closeCursor() erforderlich sein */
$stmt->closeCursor();
/* Nun kann die zweite Anweisung ausgeführt werden */
$otherStmt->execute();
?>