fc2ブログ

CakePHPでトランザクション処理(メモ)

しばらく放置してあった作成中のアプリ、
時間が取れたので作成を進めることができました。

今日はCakePHPでトランザクション処理に挑戦しました。

MySQLのストレージエンジンがInnoDBである必要があるようです。
調べてみたら、私の使っているMySQL5.5は、InnoDBがデフォルト
のストレージエンジンになっているとの事。

さっそく試してみました。

まず、begin() commit() rollback()を作るみたいで、検索してみると
app_modelに作る方法があったのでそれを採用。

①cake/libs/model/app_model.phpをapp/models配下にコピーし、関数を追加
 function begin() {
  $dbs = & ConnectionManager::getDataSource($this->useDbConfig);
  $dbs->begin($this);
 }
 function commit() {
  $dbs = & ConnectionManager::getDataSource($this->useDbConfig);
  $dbs->commit($this);
 }
 function rollback() {
  $dbs = & ConnectionManager::getDataSource($this->useDbConfig);
  $dbs->rollback($this);
 }

②トランザクション処理を処理に追加
 ※呼び出しかたは、
  モデル->begin();
  モデル->commit();
  モデル->rollback();

これだけでした。。。

動かしてみたらちゃんと動いてました。

楽チンでした。
スポンサーサイト



コメントの投稿

非公開コメント

プロフィール

romanesque

Author:romanesque
ソフトウェアの開発やら運用やらいろいろとやってきました。最近は世間で言うSE職とやらをやっています。

このブログでは、「気の向くまま」を基本コンセプトに思った事(仕事~趣味)を書いていこうと思っています。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR