ホームページ >バックエンド開発 >PHPチュートリアル >PHP データベース クエリで「致命的エラー: fetch_assoc() on a Non-Object」が発生するのはなぜですか?
致命的エラー: 非オブジェクトの fetch_assoc()
データベース クエリを実行すると、次のエラー メッセージが表示される場合があります:
Fatal error: Call to a member function fetch_assoc() on a non-object
このエラーは、 fetch_assoc() メソッドが呼び出されたときに発生します。非オブジェクト (通常は mysqli_result オブジェクト)。
問題分析:
提供されたコード スニペットでは、次のような関数を作成した可能性があります:
function get_recent_highs(...){ $result = $this->database->query($query); while($row = $result->fetch_assoc()) {...} }
$result が非オブジェクトの場合、fetch_assoc() 呼び出しは失敗します。これは、SQL クエリにエラーがあり、query() が結果オブジェクトの代わりに false を返す場合に発生する可能性があります。
解決策:
エラーが発生した場合は、query() の戻り値を確認してください。 false を返した場合は、例外をスローするか、それに応じてエラーを処理します。例:
function get_recent_highs(...){ $result = $this->database->query($query); if (!$result) { throw new Exception("Database Error"); } while($row = $result->fetch_assoc()) {...} }
query() でエラーをキャッチすることで、有効な結果オブジェクトに対してのみ fetch_assoc() が呼び出され、非オブジェクト エラーを防ぐことができます。
以上がPHP データベース クエリで「致命的エラー: fetch_assoc() on a Non-Object」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。