PDOStatement::rowCount – Gibt die Anzahl der Zeilen zurück, die von der vorherigen SQL-Anweisung betroffen sind (PHP 5 >= 5.1.0, PECL pdo >= 0.1.0)
int PDOStatement::rowCount ( void )
PDOStatement::rowCount() Gibt die Anzahl der Zeilen zurück, die von der letzten DELETE-, INSERT- oder UPDATE-Anweisung betroffen sind, die vom entsprechenden PDOStatement-Objekt ausgeführt wurde.
Wenn die letzte vom zugehörigen PDOStatement ausgeführte SQL-Anweisung eine SELECT-Anweisung war, geben einige Daten möglicherweise die Anzahl der von dieser Anweisung zurückgegebenen Zeilen zurück. Es kann jedoch nicht garantiert werden, dass dieser Ansatz für alle Daten funktioniert, und man sollte sich nicht auf tragbare Anwendungen verlassen.
Gibt die Anzahl der Zeilen zurück.
PDOStatement::rowCount() Gibt die Anzahl der Zeilen zurück, die von einer DELETE-, INSERT- oder UPDATE-Anweisung betroffen sind.
<?php/* Alle Zeilen aus der FRUIT-Datentabelle löschen*/$del = $dbh->prepare('DELETE FROM Fruit');$del->execute();/* Anzahl der gelöschten Zeilen zurückgeben*/print ("Anzahl der gelöschten Zeilen zurückgeben:n");$count = $del->rowCount();print("Gelöschte $count Zeilen.n");?>
Die obige Beispielausgabe:
Anzahl der gelöschten Zeilen zurückgeben: 9 Zeilen gelöscht.
Bei den meisten Datenbanken kann PDOStatement::rowCount() nicht die Anzahl der Zeilen zurückgeben, die von einer SELECT-Anweisung betroffen sind. Alternativ können Sie PDO::query() verwenden, um eine SELECT COUNT(*)-Anweisung mit demselben bedingten Ausdruck wie die ursprünglich vorgesehene SELECT-Anweisung auszugeben, und dann PDOStatement::fetchColumn() verwenden, um die nächste Zeile abzurufen. Auf diese Weise kann die Anwendung korrekt ausgeführt werden.
<?php$sql = "SELECT COUNT(*) FROM Fruit WHERE Kalorien > 100";if ($res = $conn->query($sql)) { /* Überprüfen Sie die Anzahl der Zeilen, die mit der SELECT-Anweisung übereinstimmen*/ if ($ res->fetchColumn() > 0) { /* Geben Sie eine echte SELECT-Anweisung aus und bearbeiten Sie die zurückgegebenen Ergebnisse*/ $sql = "SELECT name FROM Fruit WHERE Kalorien > 100"; foreach ($conn->query($sql) as $row) { print "Name: " . $row['NAME'] . "n"; } } /* Keine passenden Zeilen - - Execute other */ else { print „Keine Zeilen stimmten mit der Abfrage überein.“; }}$res = null;$conn = null;?>
Das Ausgabeergebnis des obigen Beispiels ist:
ApfelBananeOrangeBirne