ホームページ >データベース >mysql チュートリアル >`mysqli_num_rows()` が結果セットではなくブール値を返すのはなぜですか?
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 サイトの他の関連記事を参照してください。