[PHP-users 21297]Re: pearDBのエラーコードについて
Kazuhiro Hiratsuka
hira @ js-bros.co.jp
2004年 4月 17日 (土) 16:45:05 JST
平塚です。
色々と参考になるお話有難うございます。
経験不足故に質問の仕方が悪かったようです。
もう少し調べさせてもらい、また質問させていただきます。
ちなみにPostgreSQLのバージョンは7.4.1です。
----- Original Message -----
From: "Youichi Iwakiri" <yiwakiri @ st.rim.or.jp>
To: "PHP-users ML" <php-users @ php.gr.jp>
Sent: Saturday, April 17, 2004 4:36 PM
Subject: [PHP-users 21296] Re: pearDBのエラーコードについて
> いわきりです
>
> Kazuhiro Hiratsuka wrote in <002301c4244a$c0c851f0$320fa8c0 @ DimensionHIRA>
:
> >DBMS全てがSELECT文により検索結果が得られない場合にDB_OK
> >が返ってくるものではありませんよ。
> >DB2をご存知かどうかは知りませんが、DB2の場合エラーとなり、そのエラーコー
ドが
> >Not Foundならといったような処理をアプリで入れてあげてはならないのです。
>
> それはそうでしょう。
> いま共通の話題にしている物は、PHPのPEAR/DBクラスの話です。
> QUERYが成功した場合は、DB_OKを返すのがPEAR/DBの仕様です。
> どのphptype(DBMSのタイプ)を指定しようが、その差異を吸収
> するために、共通化が図られています。
>
> [PHP-users 21242]で武藤さんが薦められた、DB/phptype.phpが
> 何をしているかは確認しなかったのですか?
> 今回の場合は、DB/pgsql.phpになるのでしょうが、
> PEAR/DBの流儀を無視して*勝手に*DB_ERROR_NOT_FOUNDが
> 返るものだとして話を進めるから、お困りだったんでしょうに。
>
> >ちなみに今回は、postgrsSQLを使用していますが、下記のようなロジックになっ
てい
> >ます。
> >
> > $sqlStr = "INSERT INTO ". TBL_GRECA_CATEGORY ."(CATEGORY,REFIX_DATE)
> >VALUES( '".$Category."','NOW')";
> > $resp = $Conn->query($sqlStr);
> > if (DB::isError($resp)) {
> > print $resp->getCode();
> > return false;
> > }
> >print $resp->getCode();
> >return true;
>
> お使いのPostgreSQLのversionはいくつですか?
> PostgreSQL 7.4.x系だと重複時に返されるメッセージが
> 変更になっています。
> そのため、constraint violationと誤認されます。
> #間違いじゃないけど
>
> テキストのエラーメッセージとPEAR/DBのエラーコードへの
> マッピングがあっていないので7.4.x系では期待する
> 動作とならないでしょう。
>
> 最初から、必要十分な情報を出されていれば
> 一週間も無駄にせずにすんだと思いませんか?
>
> --
> Youichi Iwakiri
>
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
PHP-users メーリングリストの案内