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

Seto php-users@php.gr.jp
Thu, 21 Feb 2002 16:20:53 +0900


 Setoです。

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

ご自分ではどのようにお考えでしょうか?
pg_getlastoid してから その oid にて Selectという手もあります。
しかし oidを使用したアクセス方法は避けるべきとの記述をどこかで
見た記憶もあります。(どなたかフォローお願いいたします。)

>2.トランザクション
>  トランザクションの処理は以下のステップで十分ですか。
>  pg_exec($dbconnect,"BEGIN");
>  pg_exec($dbconnect,"Insert into ....");
>  pg_exec($dbconnect,"Update ...")
>  ...
>  pg_exec($dbconnect,"COMIT");

この辺はデータの性質、処理の重要性によってではないでしょうか?
3のエラー処理にも関係しますが commitだけでなくrollbackの
必要性は検討されていますか?

>
>3.エラー処理
>  テーブルへの更新操作(Insert、Update、Deleteなど)が
>  成功したか、失敗したか判断する時はどんな方法が一番
>  良いですか。
pg_execの戻り値はチェックされているのでしょうか?
pg_errormessageという関数も参照して見てください。

>ほかにも注意点があればぜひ教えてください。
これもご自分がやりたいことによると思います。
さまざまな用件のバランスを取らなくてはならないと思います。

***************************************
 Junya Seto
 http://www.cii.gr.jp/~seto/mkWeb.html
***************************************