Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „count(*)' von MySQLi beim Zählen von Tabellenzeilen 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!