7

kohana ORM を使用して mysql トランザクションとロールバックを使用することは (どのように) 可能ですか?

4

3 に答える 3

8

Kohana 3.xのSQLトランザクションは、2.xと同じ方法では実行されません。3.xでは、データベースクラスにトランザクションメソッドが付属しています。

$db->begin();
$db->commit();
$db->rollback();

これは、ORMのものを使用している場合にも機能します。ORMが保存、更新、または削除する前に、トランザクションを開始するだけです。

この投稿で詳細を読む:http: //dev.strategystar.net/2011/10/sql-transactions-with-kohana-3-x/

2.xでは、トランザクションは手動で実行する必要がありました。

$this->db->query("START TRANSACTION")
于 2011-10-07T16:47:11.400 に答える
7

公式フォーラムをチェックしてください。Ko3 でトランザクションを使用する方法の例を示します。

$db->query(NULL, 'TRANSACTION START');  
// Do stuff  
$db->query(NULL, 'COMMIT');

バージョン2でそれを行う方法はわかりません。私はまだ kohana を始めたばかりで、Ko2 ではなく Ko3 を学んでいます。しかし、かなり似ていると思います。

于 2009-10-10T13:28:20.493 に答える
3

トランザクションの使用をより簡単にする Kohana モジュールを作成しました。

https://github.com/brazzy/kohana-transactional

ただし、少なくとも Kohana 3.1 が必要です。しかし、あなたはただ追加するだけです

public $_transactional = true;

すべてのアクションはトランザクション内で自動的に実行され、アクションが例外で失敗するとロールバックされます。

于 2012-04-08T16:15:05.577 に答える