- ベストアンサー
zend(phpフレームワーク)でトランザクション処理をしたいのですが
zend(phpフレームワーク)でトランザクション処理をしたいのですが…。 いつもお世話になっております。 zendでトランザクション処理をしたいのですが O/Rマッパーを使用した方法がわかりません…。 どなたかご存知この方参考サイト等あれば御教示お願いします。
- みんなの回答 (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は、良く知りません。
その他の回答 (1)
- hogehoge78
- ベストアンサー率80% (433/539)
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 トランザクション」と検索したら、しこたま出てきました。 一番最初の記事でできそうです。