首頁 > 資料庫 > mysql教程 > 為什麼「mysqli_num_rows()」傳回布林值而不是結果集?

為什麼「mysqli_num_rows()」傳回布林值而不是結果集?

Mary-Kate Olsen
發布: 2024-12-07 19:49:14
原創
699 人瀏覽過

Why Does `mysqli_num_rows()` Return a Boolean Instead of a Result Set?

PHP 和MySQL:解決「mysqli_num_rows() 期望參數1 為mysqli_result,給定布林值」錯誤

錯誤「mye_」期望參數1 為mysqli_result,給定布林值」表示提供給 mysqli_num_rows() 函數的輸入不是有效的結果集。當輸入參數不是成功執行查詢的結果時,經常會遇到此錯誤。

在這個特定情況下,錯誤發生在以下PHP 程式碼行中:

if (mysqli_num_rows($dbc) == 0) {
登入後複製
這裡,變數$dbc 用作mysqli_num_rows() 的輸入,但它傳回false,因為在$dbc上執行的查詢包含錯誤:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");
登入後複製
查詢中的錯誤是用戶和個人資料表之間缺少JOIN 關鍵字:

SELECT users.*, profile.* --You do not join with profile anywhere.
                                 FROM users 
                                 INNER JOIN contact_info 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");
登入後複製
要解決此問題,您應該按如下方式修改查詢:

$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
                                 FROM users 
                                 INNER JOIN profile 
                                 ON contact_info.user_id = users.user_id 
                                 WHERE users.user_id=3");
登入後複製
透過修正查詢,mysqli_num_rows()函數現在將收到有效的結果集並能夠確定結果中的行數是否為零。

以上是為什麼「mysqli_num_rows()」傳回布林值而不是結果集?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板