Warum gibt mein mysqli_stmt::num_rows immer 0 zurück?
Beim Versuch, die Anzahl der von einer MySQL-Abfrage zurückgegebenen Zeilen mithilfe von mysqli_stmt abzurufen ::num_rows, Benutzer können feststellen, dass trotz der Existenz tatsächlicher Ergebnisse durchgängig 0 zurückgegeben wird. Um dieses Problem zu beheben, ist es wichtig, die Funktion mysqli_stmt::store_result() vor num_rows aufzurufen.
Der folgende Code veranschaulicht die korrekte Verwendung:
if ($stmt = $mysqli->prepare("SELECT id, title, visible, parent_id FROM content WHERE parent_id = ? ORDER BY page_order ASC;")) { $stmt->bind_param('s', $data->id); $stmt->execute(); $stmt->store_result(); $num_of_rows = $stmt->num_rows; $stmt->bind_result($child_id, $child_title, $child_visible, $child_parent); while ($stmt->fetch()) { // code } echo($num_of_rows); $stmt->close(); }
Wie im offiziellen Dokument angegeben MySQL-Dokumentation für mysqli_stmt::num_rows, „[...] Die Anzahl der Zeilen in einer Ergebnismenge kann durch Aufrufen von ermittelt werden „num_rows“-Methode. Dies muss nach dem Aufruf von „store_result“ erfolgen. Durch die Einbindung des mysqli_stmt::store_result()-Aufrufs wird die Ergebnismenge im Client gespeichert, was eine genaue Bestimmung der Anzahl der Zeilen ermöglicht.
Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_stmt::num_rows' immer 0 zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!