警告: mysqli_query() はパラメーター 1 が mysqli であることを期待しており、null が指定されている
このエラーは、mysqli_query を使用して MySQL クエリを実行しようとすると発生します。 () ですが、接続オブジェクトに指定されたパラメータは有効な MySQLi オブジェクトではありません。 mysqli_query() 関数は、最初のパラメータが mysqli クラスのインスタンスであることを想定しています。
提供されたコード スニペットでは、エラーは次の理由で発生する可能性があります:
スコープの問題
グローバル スコープで宣言されている mysqli 接続オブジェクト $con は、 getPosts() 関数内でアクセスできます。これにより、null 値が最初のパラメータとして mysqli_query() に渡され、エラーが発生します。
解決策:
この問題を明示的に解決するには、次のようにします。接続オブジェクトを getPosts() 関数にパラメータとして渡します。変更されたコードは次のとおりです。
function getPosts(mysqli $con) { $query = mysqli_query($con, "SELECT * FROM Blog"); // ... Rest of the code remains the same }
getPosts() 関数を呼び出すときは、必ず接続オブジェクトを引数として渡します。
さらに、有効にすることをお勧めします。エラーを報告し、データベース接続の問題を適切に処理します。以下に例を示します:
// Enable error reporting mysqli_report(MYSQLI_REPORT_ERROR | MYSQLI_REPORT_STRICT); // Establish database connection $con = mysqli_connect("localhost", "xxxx", "xxxx", "xxxxx"); // Check connection status if (!$con) { throw new Exception('Failed to connect to MySQL: ' . mysqli_connect_error()); } // Call the getPosts() function with the connection object getPosts($con);
以上がなぜ `mysqli_query()` は「パラメータ 1 が mysqli であることを期待しており、null が指定されている」を返すのでしょうか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。