LoginSignup
mofred13
@mofred13

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

【PHP】DB接続ってちゃんとcloseした方がいいですか?

Q&AClosed

業務で使ってるコードの話です。
既存のコードだと、pg_connectで開いた接続を毎回pg_closeで閉じてます。
pg_free_resultも毎回呼んでたりします。

PHPマニュアルにはどちらも、通常は必要ないと書かれています。
不要なコードなら書くべきではないですが、念のため書いた方がいいものでしょうか?

pg_closeは不要で、pg_free_resultはアウトオブメモリが発生しそうなら使うって感じの認識で大丈夫ですか?

0

2Answer

自動でcloseされるタイミングがシステムに悪影響となる可能性があるならプログラム中で明示的にやるべき。
close周りで失敗したときとかプログラム内でエラー処理出来ると堅牢性が高く出来る。
使ったものは後片付けしている方がレビューで確認しなくてよい。
片付け不足はリリース後しばらく経ってから突然発覚するバグなので
品質重視ならそのままで行くのは悪くないと思います。

2

マニュアルに必要ないと書いてある以上はプログラムの挙動を制御する上では必要ないと解釈して良いです。 しかしプログラムというのは機械に対する指示であると同時に人が読み書きするものでもあります。

最終的に自動的に閉じられるものであってもこれ以降にデータベースにアクセスされることはない (すべきでない) という状況を意思表示するためにクローズを明記するのが好ましい場合というのはあります。

結局のところは開発チーム内で意思統一することが重要なので一般論としてどちらが好ましいとは決められません。 質問者のチーム内でクローズを明記する慣例が確立しているのならそれは尊重されるべきです。 それでも慣例を破るべきであると考えるならチーム内で話し合うのが筋であろうかと思います。

1

Your answer might help someone💌