ホームページ >バックエンド開発 >PHPチュートリアル >「mysqli_query()」が「警告: mysqli_query() はパラメータ 1 が mysqli であることを期待しています。null が指定されています」というエラーを返すのはなぜですか?
警告: mysqli_query() パラメーターのエラーについて
PHP で mysqli_query() を使用する場合、最初のパラメーターがデータベース接続を表す有効な mysqli オブジェクト。ただし、「警告: mysqli_query() はパラメーター 1 が mysqli であることを期待しており、null が指定されています」というエラーが発生した場合は、関数に渡された最初のパラメーターが mysqli オブジェクトではないことを示します。
コードの調査
提供されたコードには、getPosts() という関数があります。この関数は、Blog という名前のデータベース テーブルにクエリを実行しようとします。ただし、getPosts() 内の mysqli_query() 呼び出しでは、最初のパラメーターは明示的に渡されません。その結果、PHP は関数の外で宣言された $con の値を最初のパラメーターとして想定します。ただし、$con は getPosts() のスコープ内にないため、null を返します。
エラーの解決
この問題を解決するには、次の 2 つのオプションがあります。
例:
function getPosts(mysqli $con) { // ... same code as before } // Connect to the database $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); // Call getPosts() with the connection as a parameter getPosts($con);
追加の推奨事項
データベース中に発生する可能性のある潜在的なエラーを処理することもお勧めします。操作。次のようにエラー レポートを明示的に有効にできます。
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions
これにより、エラーが発生した場合に例外がスローされ、コード内で適切なアクションを実行できるようになります。
以上が「mysqli_query()」が「警告: mysqli_query() はパラメータ 1 が mysqli であることを期待しています。null が指定されています」というエラーを返すのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。