7

是否可以(如何)使用 kohana ORM 使用 mysql 事务和回滚?

4

3 回答 3

8

Kohana 3.x 中的 SQL 事务处理方式与 2.x 不同。在 3.x 中,数据库类自带事务方法:

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

如果您使用的是 ORM 东西,这也适用。只需在 ORM 保存、更新、a 或删除之前启动事务。

在这篇文章中阅读更多内容: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 的新手,学习 Ko3 而不是 2。但我猜它非常相似。

于 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 回答