CodeIgniterの中Transactionsを参照してください。
構文(だけでなく文書で考える):
$this->db->trans_begin();
$this->db->query('AN SQL QUERY...');
$this->db->query('ANOTHER QUERY...');
$this->db->query('AND YET ANOTHER QUERY...');
if ($this->db->trans_status() === FALSE)
{
$this->db->trans_rollback();
}
else
{
$this->db->trans_commit();
}
使用することを確認します$ this-> DB-> trans_begin()、マニュアル トランザクションを実行するとき、NOTます$ this-> DB-> trans_start()。
strict-modeも参照してください。あなたがそのよう 'C'タグを削除する必要があります
// MODEL_x
public function functionX($data)
{
return $this->db->insert('table_x',$data);
}
// MODEL_y
public function functionY($data)
{
return $this->db->insert('table_y',$data);
}
//controller
$this->db->trans_start();
$this->model_x->functionX();
$this->model_y->functionY();
$this->db->trans_complete();
if ($this->db->trans_status() === FALSE) {
//log error
}
:あなたは私たちのこのアプローチ(私の意見)一つではなく、その唯一の/最高かどうかわからできる複数のモデルの場合
UPDATED
あなたの質問には関係ありません。 –
更新された回答を参照してください@ user3387719 –