クラス __destruct 関数で mysqli クエリを実行しても問題ありませんか?
どこかで、クエリが常に終了するとは限らないか、期待どおりに機能しないと聞きました。
例えば:
class stackoverflow{
function a() {
}
function b() {
}
function __destruct() {
//mysqli query here
}
}
クラス __destruct 関数で mysqli クエリを実行しても問題ありませんか?
どこかで、クエリが常に終了するとは限らないか、期待どおりに機能しないと聞きました。
例えば:
class stackoverflow{
function a() {
}
function b() {
}
function __destruct() {
//mysqli query here
}
}
一般に、スクリプトの最後に必要な作業を実行する独自のメソッドを作成し、それを手動で呼び出すことをお勧めします。
私の見解では、これの主な理由はエラー処理です。
オンラインドキュメントによると:
(スクリプトの終了時に呼び出される) デストラクタから例外をスローしようとすると、致命的なエラーが発生します。
これは、エラーが発生した場合 (たとえば、mysql クエリで)、致命的なエラーによってスクリプトがシャットダウンされることを意味します。
__destruct メソッドが役立つ場合もありますが、テスト済みでエラーが発生しにくい単純なハードコードのみを必要とする状況で使用する方が適切です。
さらに、一部のサーバーは、シャットダウン フェーズ中にさまざまなパラメーターを変更する場合があります。作業ディレクトリなど。
期待どおりに動作しない理由はありません。ただし、そもそもなぜそうしたかったのかを説明していただけると助かります。考えているよりも良い解決策があるかもしれません