Heim  >  Artikel  >  Datenbank  >  Wie kann man Zeilen aus einer PDO-SELECT-Anweisung in PHP effizient zählen?

Wie kann man Zeilen aus einer PDO-SELECT-Anweisung in PHP effizient zählen?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-18 08:36:02461Durchsuche

How to Efficiently Count Rows from a PDO SELECT Statement in PHP?

So zählen Sie Zeilen in PHP PDO

PDO, die Industriestandardbibliothek für den Zugriff auf Datenbanken in PHP, verfügt nicht über eine dedizierte Methode zum Zählen Von SELECT-Abfragen zurückgegebene Zeilen. Eine übliche Problemumgehung ist die Verwendung von count($results->fetchAll()), aber das ist nicht immer der effizienteste Ansatz.

PDOStatement::rowCount

The Das PDO-Anweisungsobjekt stellt eine rowCount-Methode bereit. Allerdings heißt es in der offiziellen PDO-Dokumentation:

For most databases, PDOStatement::rowCount() does not return the number of rows affected by a SELECT statement. Instead, use PDO::query() to issue a SELECT COUNT(*) statement with the same predicates as your intended SELECT statement, then use PDOStatement::fetchColumn() to retrieve the number of rows that will be returned. Your application can then perform the correct action.

Zeilen mit vorhandenem Recordset zählen

Wenn Sie die Daten bereits abgerufen haben, können Sie die Zählfunktion verwenden das Ergebnisarray:

$stmt = $db->prepare('SELECT * FROM table');
$stmt->execute();
$rowCount = count($stmt->fetchAll(PDO::FETCH_ASSOC));

Alternativ können Sie sich auf die objektorientierte Durchquerung verlassen und die Zeilen manuell zählen:

$rowCount = 0;
while ($row = $stmt->fetch(PDO::FETCH_ASSOC)) {
    $rowCount++;
}

Bedenken Sie, dass das Abrufen aller Zeilen in den Speicher die Anwendungsleistung beeinträchtigen kann. insbesondere bei großen Ergebnismengen. Erwägen Sie bei Bedarf die Paginierung oder andere Optimierungstechniken.

Das obige ist der detaillierte Inhalt vonWie kann man Zeilen aus einer PDO-SELECT-Anweisung in PHP effizient zählen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn