Так что у меня есть этот запрос в моих моделях.
$this->db->trans_begin();
$this->db->insert($somequeryhere);
$this->db->insert($somequeryhere2);
$this->db->insert($somequeryhere3);
$this->db->insert($somequeryhere4);
$this->db->update($somequeryhere7);
$this->db->update($somequeryhere21);
$this->db->delete($somequeryhere10);
if($this->db->trans_status() === FALSE){
$this->db->trans_rollback(); return false;
}else{
$this->db->trans_commit(); return true;
}
Транзакция работает хорошо.Но это сбивает с толку, когда я пытался остановить процесс PHP в середине запроса, как показано ниже.
$this->db->trans_begin();
$this->db->insert($somequeryhere);
$this->db->insert($somequeryhere2);
$this->db->insert($somequeryhere3);
$this->db->insert($somequeryhere4);
die;
$this->db->update($somequeryhere7);
$this->db->update($somequeryhere21);
$this->db->delete($somequeryhere10);
if($this->db->trans_status() === FALSE){
$this->db->trans_rollback(); return false;
}else{
$this->db->trans_commit(); return true;
}
Транзакция все еще работает.Я думал, что PHP не достиг $this->db->trans_status()
, поэтому транзакция не будет работать, но это также работает как использование или без использования $this->db->trans_status()
.Может кто-нибудь объяснить это?
Я пытался использовать $this->db->trans_start();
и $this->db->trans_complete();
, и откат транзакции все еще выполнялся.