[PHP-users 1160] Re: PEARのオブジェクトについて

KOYAMA Tetsuji php-users@php.gr.jp
Sat, 11 Aug 2001 00:13:04 +0900


  小山です。WEB+DB Press Vol.3 の例の記事を書いた本人です。(^^;

# 渋谷さん、フォローどうも。

At Fri, 10 Aug 2001 23:36:30 +0900,
Hisao SHIBUYA wrote:
> > $db = DB::connect($dsn);
> > if (DB::isError($db)) {
> >     print("エラー。");
> > }
> > $sql = 'select * from hogetbl';
> > $res = $db->query($sql);
> 
> 詳細なエラーが必要であれば
> print $db->getMessage();
> とすればエラーメッセージが表示されます。

  補足すると、DB::connect() が返す値は

	接続が成功した場合 -> DB_xxx クラスのオブジェクト
				(xxx は DSN に指定した phptype によっ
				て変わります)
	接続が失敗した場合 -> DB_Error クラスのオブジェクト

になります。

  そもそも、DB::isError() は引数が DB_Error クラスのオブジェクト等かど
うかチェックするものです。つまり、これが真になったということは、$db が 
DB_Error クラスのオブジェクトであるということを意味しています。

  そして、DB_Error クラスには query() というメンバー関数は存在しないの
で、$db->query() を呼ぶと

	Fatal error: Call to undefined function: query()

になるわけです。

  記事中やソースコードのの DSN の内容は、各人の DB の環境によって適宜
変更してください。

-- 
	小山 哲志@ビート・クラフト
	koyama@beatcraft.com
	koyama@hoge.org