[PHP-users 5610] Re: データベース操作中の問題点

naoki kishida php-users@php.gr.jp
Thu, 21 Feb 2002 15:52:12 +0900


きしだです
ひとつの投稿に複数の質問を書くのはあまり良いことではないです。
# とりあえず、全部がわかる人にしか返事がだせなくなる傾向があります。

> 1.通し番号の取得
>   只今自分が Insert したレコードの通し番号を取得するには
>   どんな方法が一番良いですか。

挿入されるのが1行であることがわかってるのなら
  $rtn = pg_exec($dbconnect,
             "insert into test(context) values('てすと ')");
としたときに
  $oid = pg_getlastoid($rtn);
とすると挿入された行のOIDが得られるので
  $rtn = pg_exec($dbconnect,"select mid from test where oid=$oid");
  $mid = pg_result($rtn,0,0);
みたいにすると得られます。
一番良いかどうかは知りません。

> 2.トランザクション
>   トランザクションの処理は以下のステップで十分ですか。

この質問でYes/Noを言えるほどトランザクションは単純ではないです。
というのが答えになると思います。

> 3.エラー処理
>   テーブルへの更新操作(Insert、Update、Deleteなど)が
>   成功したか、失敗したか判断する時はどんな方法が一番
>   良いですか。

これだけで一番良い方法が書けるほど、エラー処理は単純ではないです。
というのが答えになるかもしれません。
厳密だから良いというわけでもないし。

一般的なことですが、「一番良い」ものは場合によりけりなので、なにかを限定
しない限り「一番良い」ものというのはわかりません。

「ステップ数でもらえる金額が決まります。どう処理を記述するのがが一番良い
ですか?」とか(-_-)

----
岸田 哉生(きしだ なおき)
	email:kishida@fk.urban.ne.jp
	http://www.fk.urban.ne.jp/home/kishida/