ホームページ >バックエンド開発 >PHPチュートリアル >「mysqli_query()」が「警告: mysqli_query() はパラメータ 1 が MySQLi であることを期待しており、null が指定されている」を返すのはなぜですか?

「mysqli_query()」が「警告: mysqli_query() はパラメータ 1 が MySQLi であることを期待しており、null が指定されている」を返すのはなぜですか?

DDD
DDDオリジナル
2024-12-18 17:12:11602ブラウズ

Why Does `mysqli_query()` Return

「警告: mysqli_query() はパラメーター 1 が MySQLi であることを期待しており、null が指定されています」エラー

カスタムを作成しようとしましたCMS、次のエラー メッセージが表示されました:

「警告: mysqli_query() はパラメータ 1 が MySQLi であることを予期しており、"

エラーの原因

で指定された null です。このエラーは、SQL クエリを実行する mysqli_query() 関数が無効であることを示します。は、最初のパラメータとして MySQLi オブジェクトを期待します。ただし、getPosts() 関数では、MySQLi オブジェクトの代わりに null 値を渡しています。

解決策

この問題の解決策は、 $con MySQLi オブジェクトは getPosts() 関数のスコープ内にあります。コードでは、$con はグローバル スコープで定義されていますが、関数内ではアクセスできません。

依存関係として MySQLi オブジェクトを渡す

次の 1 つの方法これは、MySQLi オブジェクトを依存関係として getPosts() 関数に渡すことを意味します。その方法は次のとおりです:

function getPosts(mysqli $con) {
    // etc
}

MySQLi オブジェクトを関数のパラメータにすると、そのオブジェクトが関数のスコープ内で使用可能になり、mysqli_query() で使用できるようになります。

追加の推奨事項

スコープの解決に加えて

  • mysqli_report() を使用してエラー報告オプションを設定し、エラーと接続エラーを処理します。
  • 接続エラーまたはクエリ エラーが発生した場合はスクリプトの実行を停止します。 mysqli::error() を使用して発生します。

これらを実装する方法の例を次に示します。推奨事項:

mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
$con=mysqli_connect("localhost","xxxx","xxxx","xxxxx");

if (!$con) {
    throw new Exception("Failed to connect to MySQL: " . mysqli_connect_error());
}

getPosts($con);

これらの推奨事項を実装することで、カスタム CMS の堅牢性と信頼性を確保できます。

以上が「mysqli_query()」が「警告: mysqli_query() はパラメータ 1 が MySQLi であることを期待しており、null が指定されている」を返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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