Codeigniter一个事务有两个模型

时间:2012-09-03 11:10:25

标签: codeigniter model transactions

是否可以对单独的模型进行一次“交易”。 我想插入带有标签的帖子。标签和帖子分为两个独立的模型。 我如何通过交易来处理它? (如下所示:)

$this->db->trans_start();
$this->post_model->insert('...');
$this->tags_model->insert('...');
$this->db->trans_complete();

1 个答案:

答案 0 :(得分:5)

只要您的模型方法中没有其他事务语句,您的示例代码就可以正常工作。

根据文档,您可以将TRUE传递给$this->db->trans_start()进行测试:

$this->db->trans_start(TRUE);
// Queries/model calls
$this->db->trans_complete();

if($this->db->trans_status() === FALSE)
{
    // do something if it fails
}

TRUE传递给trans_start()将在完成后自动回滚该事务。您应该能够检查表上的auto_increment值(如果适用)以查看事务是否有效。