ホームページ >バックエンド開発 >PHPチュートリアル >「mysqli_query()」が「警告: mysqli_query() はパラメータ 1 が MySQLi であることを期待しており、null が指定されている」を返すのはなぜですか?
「警告: 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_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 サイトの他の関連記事を参照してください。