codeigniter控制器中的事务?

时间:2013-10-30 19:58:17

标签: php codeigniter file-upload transactions

我正在使用Codeigniter 2.1.4并尝试实现一个事务。我可能错过了交易点,但我想要做的是将文件上传到我的服务器,并为该文件创建一个数据库条目。如果行插入或文件上传失败,我也不想这样做。

这是我的控制器的要点

首先打开交易

$this->db->trans_begin();

使用模型添加条目

$fileId = $this->file_model->addFile('someinfo');

执行文件上传

$upload = $this->upload->do_upload('file');

检查以确保两者都通过

//commit
if($fileId AND $upload){
    $this->db->trans_commit();
}

//rollback
else{
    $this->db->trans_rollback();
}

事务不起作用,每次都添加数据库条目,无论上传是否失败。

现在从以前的阅读开始,似乎交易属于模型,但这对我不起作用,因为我也在上传文件。

关于如何实现这个的想法?

1 个答案:

答案 0 :(得分:1)

试试这个:

$this->db->trans_start();

    //Your code Here...

$this->db->trans_complete();

$trans_status = $this->db->trans_status();

if ($trans_status == FALSE) {
    $this->db->trans_rollback();
} else {
    $this->db->trans_commit();
}