• ベストアンサー

zend(phpフレームワーク)でトランザクション処理をしたいのですが

zend(phpフレームワーク)でトランザクション処理をしたいのですが…。 いつもお世話になっております。 zendでトランザクション処理をしたいのですが O/Rマッパーを使用した方法がわかりません…。 どなたかご存知この方参考サイト等あれば御教示お願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • mokokomi
  • ベストアンサー率71% (5/7)
回答No.2

<code> // コントローラなどで。 // 以下のインデントは全角スペースなので、半角に直す必要がある。 // DBアダプターを取得する(Zend_Registryに登録されていると仮定する)。 $db = Zend_Registry::get('db'); try{   $db->beginTransaction();      // ここでSQLを実行する。   $table = new Your_Table_Test();   $data = array(    'key'=>'value'   );   $affectedRows = $table->insert($data);   if($affectedRows <= 0){     // データがインサートされなかったので警告としてロギングしたりする。   }      $db->commit(); } catch(Exception $e){   $db->rollback();   // ログを取るなどの処理. } </code> ちなみに DBは mysql をお使いであれば、MyISAM型だと表レベルでロックされ、 InnoDB型だと行レベルでロックされます。 その他のDBは、良く知りません。

参考URL:
http://framework.zend.com/manual/ja/zend.db.adapter.html

その他の回答 (1)

回答No.1

http://www.google.co.jp/search?hl=ja&q=Zend_Db+%E3%83%88%E3%83%A9%E3%83%B3%E3%82%B6%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&lr=lang_ja Googleで、「Zend_Db トランザクション」と検索したら、しこたま出てきました。 一番最初の記事でできそうです。

関連するQ&A

専門家に質問してみよう