為什麼我的 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中文網其他相關文章!