ホームページ >データベース >mysql チュートリアル >PHP と MySQL で「mysqli_num_rows()」が「ブール指定」エラーを返すのはなぜですか?

PHP と MySQL で「mysqli_num_rows()」が「ブール指定」エラーを返すのはなぜですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-12-09 00:17:11208ブラウズ

Why Does `mysqli_num_rows()` Return a

PHP と MySQL: mysqli_result による mysqli_num_rows() パラメーター エラーの解決

データ検証のために HTML Purifier を PHP に統合する場合、次のことを確認することが重要です適切なパラメータを渡して、次のような一般的なエラーを回避します。 「mysqli_num_rows() は、パラメーター 1 が mysqli_result であることを期待しており、ブール値が指定されています。」

エラーについて

通常、このエラーは、mysqli_num_rows() 関数が次のように呼び出されたときに発生します。間違った議論。最初のパラメータとして有効な mysqli_result オブジェクトが必要です。指定されたコード スニペットでは、最初のパラメータは $dbc であり、MySQL クエリからの有効な結果セットである必要があります。

考えられる原因

間違った使用法または不正な形式のクエリにより、mysqli_result オブジェクトの代わりにブール値 (FALSE) が返される可能性があります。これは次の場合に発生する可能性があります:

  • クエリ構文にエラーがある。
  • mysqli_query() 関数が適切に実行されない。
  • クエリが空の結果セットを返す.

を解決しています問題

提供されたコードでは、データベースからデータを取得するために使用される SQL クエリ内に問題があります:

$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");

エラーは、次の結合の省略によって発生します。ユーザーおよび contact_info と比較したプロファイル。正しいクエリは次のようになります:

$dbc = mysqli_query($mysqli,"SELECT u.*, p.*
                                 FROM users AS u
                                 LEFT JOIN profile AS p ON u.user_id = p.user_id
                                 WHERE u.user_id=3");

クエリを修正すると、$dbc 変数は有効な mysqli_result オブジェクトを返し、mysqli_num_rows() を効果的に使用できるようになります:

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

以上がPHP と MySQL で「mysqli_num_rows()」が「ブール指定」エラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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