レコードの更新

引用元
http://koano.jp/b/pgsql/php/update.html
さて、レコードの更新も pg_exec() を使います。ま、クエリを発行するということでは同じことですので。

構文はすでに説明しているので、サンプルを。

--------------------------------------------------------------------
  $con    = pg_connect("dbname=TEST"); // データベースに接続

  $SQL    = "UPDATE zaiko SET zaiko = 120 WHERE hinmei = 'red' ;" ;

  pg_exec($con, $SQL); // クエリを発行

--------------------------------------------------------------------

これで、hinme が red のデータの zaiko が 120 になるはずです。
ただ、この例だとエラーになった場合はともかく、 本当に更新が行われたかどうかはわからない ( WHERE条件式に一つもマッチしない場合もある ) ので、 実行結果の確認のために、 pg_cmdtuples() を使います。

構文: 影響のあったレコード数 = pg_cmdtuples ( 結果セット );

これにより、更新処理が行われたレコード数がわかるので、 たとえば先ほどの hinmei = ‘red’ というデータが1つしかないとすれば、この値には 1 が返ることになり、 これを踏まえたサンプルはこのようになります。

--------------------------------------------------------------------

  $con    = pg_connect( "dbname=TEST" ); // データベースに接続

  $SQL    = "UPDATE zaiko SET zaiko = 120 WHERE hinmei = 'red' ;" ;

  $result = pg_exec( $con, $SQL ); // クエリを発行

  $row    = pg_cmdtuples( $result );  echo "$row 件のレコードが更新されました。";
--------------------------------------------------------------------

レコードの更新については、ちょっと手抜きな感じですが、INSERT や DELETE に関しても同じ手順で行えますので、 心配はないと思います。結局はSQL文を pg_exec() で発行するだけですので(^^;;;