PDO verfügt über eine Funktion PDOStatement::rowCount, die die Anzahl der von der vorherigen SQL-Anweisung betroffenen Zeilen zurückgibt.
Das Ergebnis der rowCount-Funktion ist für DELETE-, INSERT- oder UPDATE-Anweisungen korrekt, bei SELECT-Anweisungen hängt es jedoch von der Implementierung der Datenbank ab. Einige Datenbanken lesen alle Ergebnismengen in den Speicher, wenn sie eine SELECT-Anweisung ausführen. Bei einer großen Anzahl von Ergebnismengen ist dies jedoch offensichtlich ineffizient. Die meisten Datenbanken geben nur einen Teil der Ergebnismenge zurück und geben dann bei Bedarf den Rest der Ergebnismenge zurück, sodass sowohl die Speichernutzung als auch die Ausführungseffizienz optimiert werden. Im letzteren Fall kann rowCount nicht die korrekte Anzahl von Zeilen in der Ergebnismenge der SELECT-Anweisung zurückgeben.
Es gibt mehrere Möglichkeiten, die richtige Anzahl von Zeilen im SELECT-Ergebnis zu erhalten
1. Verwenden Sie die Funktion fetchAll
$q = $db->query("SELECT ...");
$rows = $q->fetchAll();
$rowCount = count($rows);
2. SQL-Zählfunktion verwenden
$q = $db->query("SELECT count(*) from db;");
$rows = $q->fetch();
$rowCount = $rows[0];
Offensichtlich ist die zweite Methode effizienter
Das Obige stellt die Berechnung der Anzahl der Zeilen im Ergebnis der PHP-PDO-Select-Anweisung vor, einschließlich des relevanten Inhalts. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.