我正在尝试{...}捕获{...}和codeigniter 3中的事务。在它的内部,有诸如复制映像,插入mysql数据库和设置会话之类的过程。这些动作是否有适当的顺序?或者我可以将它们按任何顺序放置而没有任何后果吗?
try
{
$this->db->trans_begin();
if ( ! @copy('/source_dir/filename.jpg', '/destination_dir/filename.jpg'))
{
throw new Exception('failed copying file.');
}
if ( ! $this->db->insert('table1', $mydata))
{
throw new Exception('failed inserting data.');
}
$this->db->trans_commit();
$this->session->set_flashdata('message', 'all process succeeded!');
}
catch (Exception $e)
{
$this->db->trans_rollback();
@unlink('/destination_dir/filename.jpg');
$this->session->set_flashdata('message', $e->getMessage());
}