[PHP-users 21290]Re: pearDBのエラーコードについて

Youichi Iwakiri yiwakiri @ st.rim.or.jp
2004年 4月 17日 (土) 15:55:26 JST


いわきりです

Kazuhiro Hiratsuka wrote in <000701c4243e$57d3b100$320fa8c0 @ DimensionHIRA> :
>DBMSについては一応理解しているつもりです。

ほんとにそうですか?

>$db->getCode()で取得できはしないのでしょうか?
>DB_ERROR_ALREADY_EXISTSやDB_ERROR_NOT FOUNDを
>取得したいのですが。

$db = DB::connect($dsn);
$resp = $db->query($sqlStr);
if ($resp->getCode() == DB_ERROR_ALREADY_EXISTS) {
    // レコードが存在する場合の処理
}
DB_ERROR_ALREADY_EXISTSが返されないのは、
$dbと$respの扱いを誤っていませんか?

DB_ERROR_NOT_FOUNDは、利用できるDBタイプであるかどうかの
判断として内部的に使われる物です。
SELECT文により検索結果が得られない場合に返される物では
ありません。
また、SELECT文が正常に処理された場合には、DB_OKが
返されます。
検索でヒットしない場合も*0件が見つかりました*という
正常な結果が返される点をDBMSを理解されているのであれば
ご存じでしょう。


-- 
Youichi Iwakiri



PHP-users メーリングリストの案内