首頁 >後端開發 >php教程 >為什麼`mysqli_stmt::num_rows`總是回傳0?

為什麼`mysqli_stmt::num_rows`總是回傳0?

Linda Hamilton
Linda Hamilton原創
2024-12-26 06:57:10606瀏覽

Why Does `mysqli_stmt::num_rows` Always Return 0?

為什麼我的 mysqli_stmt::num_rows 總是回傳 0?

嘗試使用 mysqli_stmt 檢索 MySQL 查詢傳回的行數時::num_rows,儘管實際結果存在,但使用者可能會遇到始終傳回 0 的情況。要解決這個問題,關鍵是在 num_rows 之前呼叫 mysqli_stmt::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
    }

    echo($num_of_rows);

    $stmt->close();
}

如官方所述MySQL 文件mysqli_stmt::num_rows,「[...] 結果集中的行數可以透過呼叫num_rows方法。調用,結果集儲存在客戶端中,從而可以準確地確定行數。

以上是為什麼`mysqli_stmt::num_rows`總是回傳0?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn