ホームページ > バックエンド開発 > PHPチュートリアル > PHP mysqli オブジェクトが途中で閉じて、「mysqli オブジェクトはすでに閉じられています / mysqli エラーをフェッチできませんでした」が発生するのはなぜですか?

PHP mysqli オブジェクトが途中で閉じて、「mysqli オブジェクトはすでに閉じられています / mysqli エラーをフェッチできませんでした」が発生するのはなぜですか?

Barbara Streisand
リリース: 2024-12-03 00:57:15
オリジナル
285 人が閲覧しました

Why is my PHP mysqli object closing prematurely, causing

mysqli::query(): mysqli オブジェクトはすでに閉じられています / mysqli エラーを取得できませんでした

提供された PHP コードはクラスを利用しています(EventCalendar) データベース接続を管理し、クエリを実行します。ただし、エラー メッセージは、mysqli オブジェクトがすでに閉じられているか、mysqli エラーの取得中にエラーが発生したことを示しています。

エラーについて

mysqli オブジェクトが閉じられているとき途中で、後続のクエリが「mysqli オブジェクトはすでに閉じられています」エラーで失敗します。これは、すべてのクエリが実行される前に DBConnect オブジェクトが閉じられた場合に発生する可能性があります。

エラーの 2 番目の部分である「mysqli エラーをフェッチできませんでした」は、スクリプトが関連するエラー メッセージを取得しようとしたことを示します。以前の mysqli 操作ではエラー メッセージを取得できませんでしたが、おそらく接続が閉じられたことが原因です。

問題

必要なクエリがすべて実行されるまで DBConnect オブジェクトが閉じられていないことを確認します。提供されたコードでは、DBConnect オブジェクトは __destruct() メソッドで閉じられます。すべてのクエリが実行され、オブジェクトが不要になった後など、実際の接続終了をより適切な場所に移動します。

さらに、潜在的な接続の問題を適切に処理するために、クエリを実行する前に接続のステータスを確認することを検討してください。

改訂されたコード例

コードの改訂された部分は次のとおりです。潜在的なクロージャーの問題に対処します:

// Function to add events to Zodiac calendar
ログイン後にコピー

以上がPHP mysqli オブジェクトが途中で閉じて、「mysqli オブジェクトはすでに閉じられています / mysqli エラーをフェッチできませんでした」が発生するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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