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

publicPDOStatement::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 SQLite-Treiber immer "0" (Null) zurück, beim PostgreSQL-Treiber nur dann, 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

$del = $dbh->prepare('DELETE FROM fruit');
$del->execute();


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

To Top