[PHP-users 21842]Re: PEARを使ったinterbaseでのトランザクション

KOYAMA Tetsuji koyama @ hoge.org
2004年 5月 25日 (火) 23:23:40 JST


  小山です。

At Tue, 25 May 2004 19:30:42 +0900 (LMT),
Etsuo SUMIYA wrote:
> PEARを使ってinterbaseを使っています.
> 
> トランザクションを使おうと
> 
> $r = $db->query("SET TRANSACTION");
> if(DB::isError($r)) {
>   print $r->getDebugInfo();
>   exit;
> }
> を実行すると,
> 
> SET TRANSACTION [nativecode=invalid transaction handle (expecting
> explicit transaction start) ]
> 
> というメッセージが表示されます.
> 
> PEAR環境では具体的にはどのようにしたらトランザクションをスタートさせる
> ことができ,どのようにしたらトランザクションを完了させることができるの
> でしょうか?

  PEAR::DB には統一的にトランザクションを扱うやり方があります。

  $db->autoCommit(false);

または connect() 時の $options に array('autocommit' => false) をセッ
トしても良いです。とにかくこのようにして autocommit を無効にすると、以
降はトランザクション内で query が実行されるようになります。

  COMMIT するには

  $db->commit();

  ROLLBACK するには

  $db->rollback();

でよいです。

-- 
	小山 哲志@ビート・クラフト
	koyama @ beatcraft.com
	koyama @ hoge.org


PHP-users メーリングリストの案内