我有一个kohana 3.0.14的网站,我想在某些模式使用交易。最好的方法是什么?另外:如何在多个表上使用事务?(如何同时阻塞多个表)?现在我正在做:
DB::query(NULL, 'START TRANSACTION');
$contents = ORM::factory('basket_contents');
$contents->product_type = $product_type;
$contents->category = $product->category;
$contents->basket = $this;
$contents->save();
DB::query(NULL, 'COMMIT');但我想阻止两个表:篮子和内容。我不相信我这样做是对的。在Kohana 3中使用事务的最佳方法是什么?
发布于 2011-12-06 00:54:18
Kohana 3显然有事务方法,尽管它们似乎没有文档记录。请参阅this link
事务是数据库级的,所以无论涉及多少个表,在启动和提交之间所做的任何事情都是事务的一部分。
您没有说明您正在使用哪个DB,但是如果您正在使用MySql,请注意MySQL MyISAM表(最常见的类型)不支持事务--您需要将InnoDB与MySQL一起使用。
发布于 2012-04-09 00:13:10
我已经创建了一个Kohana模块,它使使用事务变得更加容易:
https://github.com/brazzy/kohana-transactional
然而,它至少需要Kohana3.1,当然在MySQL上也需要表才能使用InnoDB。
https://stackoverflow.com/questions/8388526
复制相似问题