[pgsql-jp: 25009] Re: UPDATEが

佐藤 正樹 sato.m48081 @ mni.ne.jp
2002年 2月 28日 (木) 12:38:13 JST


すみません。化けましたので再送します。

> 多田@KSI様、岩波@PSL様、吉田様、三淵様様ありがとうございます。
>
> アドバイスいただいた内容で修正しました。
> 実は私もSELECTとUPDATEで別の変数を使ってみましたが、
> それでもダメだってとゆう経緯がありました。
> 添付?(貼り付けた)ソースに修正しましたらOKでした????
> 本番?のソースで再修正しましたらNG?????(1、2の$resから$res1に変
更)
> そこで、他の個所を見直しました。
> エラー処理のための5で処理が止まるため1件しか処理していないようです。
> しかし、正常に更新していますし、4のメッセージも何も表示されません。
> やはり、書き方が悪いのでしょうか?
>
> 1  $res1 = $conn-> exec("UPDATE reserv_t SET r_mail_f = 'yes' WHERE
> r_m_id=$item[0] and r_d_id=$item[1] and r_p_id=$item[2] and r_new_f =
'yes'
> ");
> 2  if ( $res1 -> resultStatus ne PGRES_TUPLES_OK ) {
> 3   print "db update err\n";
> 4   printf($conn->errorMessage);
> 5   exit 1;
> 6  }
>
>
>
>
>
> > はじめまして、佐藤と申します。
> > postgresqlとゆうよりsqlの初心者です。
> > perl+postgresqlで以下のソースを作成しました。
> > しかし、$row = ($res -> ntuples)で2件あることを確認しましたが、
> > 1件処理したところで、終了してしまいます。
> > selectの書き方が悪いのかupdateの書き方が悪いのか分かりませんが・・・・。
> > どなたかアドバイスいただけないでしょうか。
> >
> > #!/usr/bin/perl
> > use Pg;
> > require "/............cgi";
> > $conn = Pg::connectdb($DBNM);
> > $res = $conn-> exec("SELECT r_m_id,r_d_id,r_p_id FROM reserv_t WHERE
> > r_mail_f = 'no'");
> > while (@item = $res->fetchrow) {
> >    $res = $conn-> exec("UPDATE reserv_t SET r_mail_f = 'yes' WHERE
> > r_m_id=$item[0] and r_d_id=$item[1]  and r_p_id=$item[2] and r_new_f =
> 'yes'
> > ");
> > }
> > 尚、ソースを見やすくするため、エラー処理やその他の処理は外しました。
> >
> >
>
>




pgsql-jp メーリングリストの案内