Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „count(*)' von MySQLi beim Zählen von Tabellenzeilen 1 zurück?

Warum gibt „count(*)' von MySQLi beim Zählen von Tabellenzeilen 1 zurück?

Patricia Arquette
Patricia ArquetteOriginal
2024-11-07 13:37:03339Durchsuche

Why Does MySQLi's `count(*)` Return 1 When Counting Table Rows?

MySQLis Zählung(*) gibt unerwartet 1 zurück

Beim Zählen der Anzahl der Zeilen in einer MySQL-Tabelle mit MySQLi kann es zu einem seltsamen Phänomen kommen, bei dem $result-> ;num_rows meldet durchweg eine Zählung von 1. Lassen Sie uns den richtigen Ansatz untersuchen.

Die Frage liegt darin, wie MySQLi verarbeitet das Ergebnis einer COUNT(*)-Abfrage. Im Gegensatz zum Ergebnis einer normalen Abfrage, die eine Reihe von Zeilen enthält, gibt COUNT(*) eine einzelne Zeile mit einer einzelnen Spalte zurück, die die Anzahl enthält.

Um diese Anzahl genau abzurufen, müssen Sie die einzelne Zeile abrufen aus der Ergebnismenge. Der folgende Code demonstriert die korrekte Verwendung:

$result = $db->query("SELECT COUNT(*) FROM `table`");
$row = $result->fetch_row();
$count = $row[0];

echo "Count: $count";

Indem Sie die erste (und einzige) Zeile abrufen und auf deren erste Spalte zugreifen, erhalten Sie die korrekte Anzahl. Die Verwendung von $result->num_rows gibt immer 1 zurück, da es die Anzahl der Zeilen im Ergebnissatz darstellt, was bei COUNT(*)-Abfragen 1 ist.

Denken Sie daran, dass bei normalen Abfragen das Ergebnis mehrere Zeilen enthält , die Verwendung von $result->num_rows ist angemessen. Befolgen Sie jedoch bei COUNT(*)-Abfragen immer das obige Muster, um die tatsächliche Anzahl abzurufen.

Das obige ist der detaillierte Inhalt vonWarum gibt „count(*)' von MySQLi beim Zählen von Tabellenzeilen 1 zurück?. 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