For Want Of A Better Word

[Cake]CakePHPで意識の低いトランザクション commit rollback

   

cakeで複数のテーブルにまたがったトランザクション管理をしたい。

 

ただ、個人的にcakephpを使うとき、あまり規約に従って作ってなくて、db操作もmodel->query()を使いまくっている。

そのときにcommitとかrollbackとか、どうすれば出来るべなと確認。

やり方

基本的にはやっぱりquery()でbeginとかcommitとか発行すればOK。

#Modelにメソッドを用意

#Controller

 

ちなみに、cakeでもExceptionは普通のtry catchでOK。

#例外があったらfalse

#例外があったら、そのまま例外を投げる。

こっちだと、上でtry-catchで拾えてcommit,rollbackの制御が出来る。

 

またトランザクション中にハンドリングしていない例外が発生しても、コミットはされない。よかた。

 

 

 - cake, php

  関連記事

【PHP】【Slim】インストールー手動ダウンロード と Composer

ずーっと思ってた、CakeとかCodeIgnaitorとか、俺には多機能すぎる! …

CakePHPでjoinしようとしたときのエラー 【Notice (8): Undefined offset: 0 [CORE/Cake/Model/Datasource/DboSource.php, line 1714]】

Cakeでfind()からjoinしようとしたときに下記Noticeが出て、検索 …

phpでsimplexml_load_fileを使ってハマった所

スクレイピングの一歩としてrssをパースしようとした。 その時「simplexm …

クロームでブラウザ・端末エミュレート機能の使い方。えらく見つけづらくなった。。

クロームのエミュレーターが見つけづらくなったのでメモ。 ①デベロッパーツールを開 …

phpでhtmlからタグ、スクリプトの除去

スクレイピング中に需要が。 simple_html_parserの「innert …