ホームページ >バックエンド開発 >PHPチュートリアル >`mysqli_query()` 関数が MySQLi 接続オブジェクトではなく Null 値を受け取るのはなぜですか?
「警告: mysqli_query() はパラメータ 1 が mysqli であることを期待し、null が指定されています」を理解する
カスタム CMS を作成する探求、「警告: mysqli_query() にはパラメータが必要です」という恐ろしいエラー メッセージが表示された可能性があります。 1 は MySQLi になり、null が指定されます。」このイライラする問題は、多くの場合、PHP 関数内の変数のスコープに関する誤解から発生します。
エラーの原因
このエラーは、getPosts() 関数が試行していることを示唆しています。 MySQLi 接続オブジェクトを格納する $con 変数にアクセスしますが、その関数のスコープ内ではアクセスできません。これは、$con が getPosts() 関数の外部で定義されているためです。
解決策: 接続を依存関係として渡す
この問題を解決するには、 getPosts() 関数への接続オブジェクトを依存関係として追加します。これにより、関数は接続にアクセスし、必要なデータベース操作を実行できます。
function getPosts(mysqli $con) { // Code to query the database using $con }
さらなるエラーの防止
潜在的な問題を最小限に抑えるには、次の使用を検討してください。接続エラーを処理し、例外をスローするコード:
mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // throw exceptions $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); getPosts($con);
追加ヒント
以上が`mysqli_query()` 関数が MySQLi 接続オブジェクトではなく Null 値を受け取るのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。