skillup

技術ブログ

Database PHP

cakeでのトランザクション、コミット、ロールバック

投稿日:2016年5月16日 更新日:

cakePHP(2.X系)でのトランザクション、コミット、ロールバックについて。

cakePHPでトランザクションを書ける場合、Model内に

と書くことが一般的です。
http://book.cakephp.org/2.0/ja/models/transactions.htmlより引用。

ただし、ある程度の規模のWebアプリではトランザクションをスタートしてからコミットするまでに複数のモデルの処理を行うことが一般的です。

上記のソースではモデル内にトランザクション関連の処理を書いておりますが、そうのような処理の場合はトランザクション自体もモデルではなくコントローラー内に書くことになるでしょう。

その場合、トランザクションを管理する独立したモデルを用意しておき、そこから処理をよんだ方がよいでしょう。

ソースを書こうと思いましたが、検索元のリンクのほうがはるかにわかりやすいためリスペクトも込めて、リンクを貼ります。

【CakePHP 2.x】Controller内でトランザクションをかける

その他、参考にしたリンクは下記です。

CakePHPでトランザクション処理

-Database, PHP
-

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

SQL結合 サブクエリに関して

今回はサブクエリに関してです。 もちろんSQL実践入門を読み進めています。 SQL上ではテーブル、ビュー、サブクエリというのは機能的にはそれほど変わらず主にパフォーマンスの点で違いがでてきます。 以下 …

no image

エラーハンドリング

エラーが起きた時にPHPだと画面に出ますが(出ない場合は画面が白くなります)、これを検知し、ログに吐いたり任意の処理をできるのがエラーハンドリングです。 フレームワークなどにはほぼこの仕組みが内在して …

no image

集合としてのSQL その2

本日も前回に引き続き集合としてのSQLに入っていきます。 Contents1 完全一致のテーブル2 重複行の削除 完全一致のテーブル 下記のようなテーブル(supparts)があり、持っている部品が完 …

no image

PHPでのデバッグ

基本的なことですが、PHPのdebugについておさらいを。 Contents1 一般的なデバッグツール1.1 var_dump1.2 xdebug1.3 フレームワークのdebugツール1.4 dd1 …

no image

HTMLの画像化について

7月にHTMLを画像化する処理なんてものをやりました。 コード自体は複雑なことはなかったんですが、新規で覚えることがそこそこあったので、メモしておきます。 Contents1 html2canvas1 …