Liefert die Anzahl der von der letzten SQL-Anweisung betroffenen Zeilen

# PDOStatement::rowCount

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDOStatement::rowCount — Liefert die Anzahl der von der letzten SQL-Anweisung betroffenen Zeilen

### Beschreibung

public function PDOStatement::rowCount(): int

PDOStatement::rowCount() gibt die Anzahl der Zeilen zurück, die von der letzten DELETE-, INSERT- oder UPDATE-Anweisung des zugehörigen `PDOStatement`-Objekts betroffen waren.

Bei Anweisungen, die Ergebnismengen erzeugen, z. B. `SELECT`, ist das Verhalten nicht definiert und kann je nach Treiber unterschiedlich sein. Einige Datenbanken können die Anzahl der von dieser Anweisung erzeugten Zeilen zurückgeben (z. B. MySQL im gepufferten Modus), aber dieses Verhalten ist nicht für alle Datenbanken garantiert und sollte nicht für portable Anwendungen verwendet werden.

> Hinweis:

> Diese Methode gibt beim PostgreSQL-Treiber "0" (Null) zurück, wenn das Statement-Attribut `PDO::ATTR_CURSOR` auf `PDO::CURSOR_SCROLL` gesetzt ist.

### Parameter-Liste

Diese Funktion besitzt keine Parameter.

### Rückgabewerte

Gibt die Anzahl der Zeilen zurück.

### Fehler/Exceptions

Gibt einen Fehler der Stufe `E_WARNING` aus, wenn das Attribut `PDO::ATTR_ERRMODE` auf `PDO::ERRMODE_WARNING` gesetzt ist.

Löst eine PDOException aus, wenn das Attribut `PDO::ATTR_ERRMODE` auf `PDO::ERRMODE_EXCEPTION` gesetzt ist.

### Beispiele

Beispiel #1 Ermitteln der Anzahl der gelöschten Zeilen

PDOStatement::rowCount() gibt die Anzahl der Zeilen zurück, die von einer DELETE-, INSERT- oder UPDATE-Anweisung betroffen sind.

    <?php
    /* Löschen aller Zeilen aus der Tabelle FRUIT */
    $del = $dbh->prepare('DELETE FROM fruit');
    $del->execute();

    /* Rückgabe der Anzahl der gelöschten Zeilen */
    print "Rückgabe der Anzahl der gelöschten Zeilen:\n";
    $count = $del->rowCount();
    print "Es wurden $count Zeilen gelöscht.\n";
    ?>

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    Rückgabe der Anzahl der gelöschten Zeilen:
    Es wurden 9 Zeilen gelöscht.

Beispiel #2 Zählen der Zeilen, die von einer SELECT-Anweisung zurückgegeben wurden

Bei den meisten Datenbanken gibt PDOStatement::rowCount() die Anzahl der von einer SELECT-Anweisung betroffenen Zeilen nicht zurück. Stattdessen sollte mittels PDO::query() eine SELECT COUNT(*)-Anweisung ausgeführt werden, die dieselben Bedingungen erfüllt wie die gewünschte SELECT-Anweisung. Mit PDOStatement::fetchColumn() kann dann die Anzahl der betroffenen Zeilen ermittelt werden.

    <?php
    $sql = "SELECT COUNT(*) FROM fruit WHERE calories > 100";
    $res = $conn->query($sql);
    $count = $res->fetchColumn();

    print "Es gibt " .  $count . " übereinstimmende Datensätze.";

Das oben gezeigte Beispiel erzeugt eine ähnliche Ausgabe wie:

    Es gibt 2 übereinstimmende Datensätze.

### Siehe auch

- PDOStatement::columnCount() - Liefert die Anzahl der Spalten in der Ergebnismenge
- PDOStatement::fetchColumn() - Liefert eine einzelne Spalte aus der nächsten Zeile einer Ergebnismenge
- PDO::query() - Bereitet eine SQL-Anweisung ohne Platzhalter vor und führt sie aus

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open