ホームページ >データベース >mysql チュートリアル >`mysqli_num_rows()` が結果セットではなくブール値を返すのはなぜですか?

`mysqli_num_rows()` が結果セットではなくブール値を返すのはなぜですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-07 19:49:14688ブラウズ

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

PHP と MySQL: 「mysqli_num_rows() はパラメーター 1 が mysqli_result であることを期待しており、ブール値が指定されています」エラー

エラー「mysqli_num_rows()」の解決パラメータ 1 が次のようになると想定されますmysqli_result, boolean Given" は、mysqli_num_rows() 関数に提供された入力が有効な結果セットではないことを示します。このエラーは、入力引数がクエリの実行が成功した結果ではない場合によく発生します。

この特定のケースでは、エラーは PHP コードの次の行で発生します:

if (mysqli_num_rows($dbc) == 0) {

ここでは、変数 $dbc が mysqli_num_rows() への入力として使用されていますが、$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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。