0

我正在使用 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();
}

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

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

关于如何实施的想法?

4

1 回答 1

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();
}
于 2015-09-21T11:59:09.437 回答