ホームページ > バックエンド開発 > PHPチュートリアル > 私の PHP スクリプトが「mysqli::query(): MySQL Object Already Closed or Unable to Fetch MySQL Error」をスローするのはなぜですか?

私の PHP スクリプトが「mysqli::query(): MySQL Object Already Closed or Unable to Fetch MySQL Error」をスローするのはなぜですか?

Barbara Streisand
リリース: 2024-12-16 22:18:14
オリジナル
870 人が閲覧しました

Why is my PHP script throwing

mysqli::query(): MySQL オブジェクトがすでに閉じられているか、MySQL エラーをフェッチできません

問題

PHP スクリプトの実行中に、次のエラーが発生します。エラー:

  • PHP 7: mysqli::query(): [script_path] の行 [line_number]
  • の MySQL をフェッチできませんでしたPHP 8: キャッチされないエラー: MySQL オブジェクトはすでに存在していますClosed

説明

これらのエラーは、MySQL 接続オブジェクトが閉じられた後に PHP スクリプトが MySQL クエリを実行しようとしていることを示します。

解決策

MySQL 接続オブジェクトがクエリを実行する前はまだアクティブです。

// Check if the MySQL connection is open
if ($mysqli->connect_error) {
    // Handle the connection error
} else {
    // Execute the query
    $result = $mysqli->query($query);
}
ログイン後にコピー

考えられる原因

  • 接続を閉じるのが早すぎる: 必ず閉じてください。すべてのクエリが完了した後にのみ MySQL 接続を行う実行されました。
  • デストラクターの問題: 実行する必要のあるクエリがまだある場合は、クラスのデストラクター (__destruct) メソッドで MySQL 接続を閉じないようにしてください。
  • 接続変数が正しく宣言されていない: MySQL 接続変数 (この場合は $mysqli) が宣言されていることを確認し、スクリプト全体で正しく割り当てられています。

追加メモ

  • クラス EventCalendar の提供されたコード スニペットでは、MySQL 接続はデストラクターで閉じられています。 (__destruct) メソッド。デストラクターが呼び出された後もクエリが必要な場合、これは問題になる可能性があります。
  • 正しい PHP バージョンと MySQL 拡張機能を使用していることを確認してください。
  • 追加のエラーがないか MySQL サーバーのログを確認してください。メッセージ。

以上が私の PHP スクリプトが「mysqli::query(): MySQL Object Already Closed or Unable to Fetch MySQL Error」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート