kohana与orm的交易

时间:2009-10-10 00:46:58

标签: php orm kohana

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

3 个答案:

答案 0 :(得分: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")

答案 1 :(得分:7)

查看official forums。它显示了如何使用Ko3进行交易的示例:

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

如何使用版本2,我不知道。我自己还是kohana的新手,并且学习Ko3而不是2.但我猜它很相似。

答案 2 :(得分:3)

我创建了一个Kohana模块,可以更轻松地使用事务:

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

但是,它至少需要Kohana 3.1。但是你只需添加

public $_transactional = true;

到控制器,所有操作都在事务中自动执行,当事件因异常而失败时回滚。