../../image/benilogo.gifPHP4 について


PHP の データー登録 について。
pg_exec( )関数

 INSERT 文 を発行して データー登録を行う。 前回と同じコードにして primaryKey が二重になる エラーとなる。
そのときどんなメッセージが出るのかを検証してみる。

Warning:  PostgreSQL query failed:  
ERROR:  Cannot insert a duplicate key into unique index bhnmst_pkey
当然ながら 左記のエラーメッセージ


@ で ERROR を抑制すると このメッセージは表示されません。 このエラーメッセージを捕捉するには
リソースの状態を調べればいいのだろうか?

<?php

  echo "$insertSQL  \n";
  $result = @pg_exec($dbconn,$insertSQL);       //InsertSQLの発行
  if ($result == False) {
     echo "異常は検知している。$result \n";
  } else {
  //直接 $result を覗いてみる。
  echo $result,"\n";
  };
?>
@ で ERROR を抑制する。 $result を調べれば
状態がわかるだろう。

 $result == False ならば異常ということ。

結果
異常は検知している。
メッセージは捕捉出来ている。
 
なるほど ERROR は捕捉できたけれど、この内容はどうすればわかるのか?

pg_last_error( ) という関数があった。 これも調べると この Version では不可。
その代わりに pg_errormessage( ) が使えた。
<?php

  echo "$insertSQL  \n";
  $result = @pg_exec($dbconn,$insertSQL);       //InsertSQLの発行
  if ($result == False) {
    // echo "異常は検知している。$result \n";
    echo pg_errormessage($dbconn),"\n";

  } else {
  //直接 $result を覗いてみる。
  echo $result,"\n";
  };
?>

 $result == False ならば異常で このとき 
  pg_errormessage($dbconn)に ERROR 内容が告知される。

結果
ERROR:  
Cannot insert a duplicate key into unique index bhnmst_pkey

このあたり、新しい PHP の Version では 
マニュアル参照
エラー処理を改善するために pg_result_error(), pg_result_status(), pg_connection_status()も参照下さい。 
とありますが、残念ながら 今使用している Version ではサポートされていません、


ま、とうぶん この形で ERROR 捕捉するものとしよう。






















2004/01/08start ********* Last Update 2006/11/11 17:00 JST

(C) Y.Kondou,2004,2006 All Rights, Reserved.
その他、お気づきの点がありましたら連絡先はこちらから