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?

Warum gibt „mysqli_stmt::num_rows' nach der Verwendung von „prepare', „bind_param', „bind_result' und „fetch' durchgängig Null zurück?

DDD
DDDOriginal
2024-12-08 05:43:09264Durchsuche

Why Does `mysqli_stmt::num_rows` Consistently Return Zero After Using `prepare`, `bind_param`, `bind_result`, and `fetch`?

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!

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