[PHP-users 13031] Re: エラー時のDBクローズ処理

UNO Shintaro php-users@php.gr.jp
Wed, 05 Feb 2003 14:16:17 +0900


>そこで質問なのですが、データベースに接続してからデータベースを閉じるまでの間
>>エラーが発生した場合、データベースを閉じる処理をどこで処理したら良いのか
>悩んでいます
>エラーが発生するとエラーハンドラー関数に処理が飛んでしまうので・・・


データベース接続を閉じる処理は、普通は書かなくても構わないと思います。
データベース接続が持続的でない場合(xxx_connectを使う場合)は、
PHPスクリプトの実行終了時にPHPが自動的に接続を閉じてくれますし、
持続的接続の場合(xxx_pconnectを使う場合)は、もともと、接続を
閉じずに使い回すことで高速化を図る方式なんですし…。


接続を閉じる以外にやらせたいことがある場合には後始末処理が要りますね。
それには register_shutdown_function() で後処理関数を登録するという方法
が使えると思います。

後始末処理が要る場合の一例は、持続的接続の中でロックやトランザクション
を使っているときです。(スクリプト終了時にロックの解除やトランザクショ
ンのロールバックをしてやる必要がある)

参考:
http://www.php.net/manual/ja/features.persistent-connections.php
http://www.php.net/manual/ja/function.register-shutdown-function.php

-- 
UNO Shintaro, 宇野 信太郎
mailto:uno@venus.dti.ne.jp
http://www.venus.dti.ne.jp/~uno/