Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt „mysqli_stmt::num_rows' nach der Verwendung von „prepare', „bind_param', „bind_result' und „fetch' durchgängig Null zurück?
mysqli num_rows gibt konsistent Null zurück
Frage:
Bei Verwendung von MySQLis Prepare, bind_param, num_rows-, bind_result- und fetch-Methoden zum Abrufen von Zeilen Warum gibt num_rows in einer Datenbank immer 0 zurück?
Antwort:
Falsche Verwendung von MySQLi-Aufrufen. Um dieses Problem zu beheben, führen Sie die folgenden Schritte aus, bevor Sie die Anzahl der Zeilen abrufen:
$stmt->execute(); $stmt->store_result();
Der Aufruf von store_result() ist wichtig, damit mysqli_stmt::num_rows ordnungsgemäß funktioniert.
Hier ist ein überarbeiteter Codeausschnitt mit dem hinzugefügten Aufruf store_result():
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 here } echo($num_of_rows); $stmt->close(); }
Bitte beachten Sie die Weitere Informationen finden Sie in der offiziellen Dokumentation für mysqli_stmt::num_rows.
Das obige ist der detaillierte Inhalt vonWarum gibt „mysqli_stmt::num_rows' nach der Verwendung von „prepare', „bind_param', „bind_result' und „fetch' durchgängig Null zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!