作成日:2006/06/17
3C.3 エラー処理
### データベースへの接続
$db =& DB::connect($dsn, $opt);
if (PEAR::isError($db)) ScriptError("connect", $db->getMessage());
### 非SELECT文の実行
$res =& $db->query($sql);
if(PEAR::isError($res)){ /* エラー処理 */ }
### SELECT文の実行
$sth = $db->prepare($sql);
if(PEAR::isError($sth)){ /* エラー処理 */ }
$res =& $db->execute($sth);
if(PEAR::isError($res)){ /* エラー処理 */ }
※ 説明し易くコードを変更してあります( 実際のsqlexec_pdb.phpとは違います)
PEAR::DB のエラー処理は統一的な方法で実現できます。 上記に示してあるように、PEAR::DB のメソッドを呼び出した後に、メソッドの戻り値を引数として PEAR::isError を呼び出します。 PEAR::DB のほとんどのメソッドは、エラーが発生した場合、DB_Error オブジェクトを返します。 エラーが発生した場合は、以下に示す getMessage() などのメソッドを使ってエラー情報を取得できます。
エラー処理関連のメソッド
| メソッド | 説明 |
|---|---|
boolean PEAR::isError ( mixed $data [,mixed $msgcode]) |
$data が PEAR_Error オブジェクト(またはその派生クラスのオブジェクト )か否かを調べ、 PEAR_Error の場合に true を、そうでない場合 false を返します。 |
DB_Error::getMessage() |
エラーメッセージを返します。( DBMS にかかわらず共通 ) |
DB_Error::getCode() |
エラーコードを返します。( DBMS にかかわらず共通 ) ここで返される数値は、DB.php で定義されている定数 DB_ERROR_* をもとにしています。 |
DB_Error::getDebugInfo() |
エラーに関するデバッグ情報を返します。( DBMS 固有のエラー情報 ) |
DB_Error::getUserInfo() |
エラーに関する追加情報を返します。( DBMS 固有のエラー情報 ) |
