//采用 codeigniter 事务的手动模式
$this->db->trans_strict(false);
$this->db->trans_begin();
$this->db->query('select ...');//select 操作无需特殊处理
$this->db->query('insert ...');//insert 出错会有 codeigniter 自动处理
$this->db->query('update ...');
if (!$this->db->affacted_rows()) {//上面的 update 失败则回滚
$this->db->trans_rollback();
//@todo 异常处理部分
exit();//需要终止或跳出,以免下面的 sql 代码继续执行!
}
$this->db->query('delete ...');
if (!$this->db->affacted_rows()) {//上面的 delete 失败则回滚
$this->db->trans_rollback();
//@todo 异常处理部分
exit();//需要终止或跳出,以免下面的 sql 代码继续执行!
}
$this->db->query('select ...');//select 操作无需特殊处理
$this->db->query('insert ...');//insert 出错会有 codeigniter 自动处理
if ($this->db->trans_status() === true) {
$this->db->trans_commit();
} else {
$this->db->trans_rollback();
//@todo 异常处理部分
}
网友评论