更新两个表Codeigniter

zen*_*zen 1 php mysql codeigniter

我试图更新2台tbl_loanledger,并tbl_journal在同一时间。两个表都有相同的列,例如modified_by, date_modified and deleted

当我尝试运行此代码时,我在此处输入代码:

错误编号:1052

字段列表中的列“ modified_by”不明确

将`loan_ledger`更新为a,将日记帐更新为b SET`modified_by` ='1',`date_modified` ='2016-06-08',`deleted` = 1在`a`.`id` ='823'和` b`.`id` ='823'

文件名:C:\ xampp \ htdocs \ system \ system \ database \ DB_driver.php

行号:331

这是如何在Codeigniter中更新2个表的正确方法吗?

模型

public function delete($id){

  $data = array(
        'modified_by' => $this->ion_auth->user()->row()->id,
        'date_modified' => date("Y-m-d"),
        'deleted' => 1
      );

    $this->db->set($data);
    $this->db->where('a.id', $id);
    $this->db->where('b.id', $id);
    $this->db->update('loan_ledger as a, journal as b');

}
Run Code Online (Sandbox Code Playgroud)

但是,如果我只是更新单个表,它正在工作,这是一个代码:

public function delete($id){

  $data = array(
        'modified_by' => $this->ion_auth->user()->row()->id,
        'date_modified' => date("Y-m-d"),
        'deleted' => 1
      );
    $this->db->where('id', $id);
    $this->db->update(tbl_loanledger, $data);

}
Run Code Online (Sandbox Code Playgroud)

Sat*_*aty 5

不使用联接只写两个单独的更新查询为

 // first 
    $this->db->set('a.modified_by', $this->ion_auth->user()->row()->id);
    $this->db->set('a.date_modified', date("Y-m-d"));
    $this->db->set('a.deleted', 1);
    $this->db->where('a.id',  $id);
    $this->db->update('loan_ledger as a');
    // second
    $this->db->set('b.modified_by', $this->ion_auth->user()->row()->id);
    $this->db->set('b.date_modified', date("Y-m-d"));
    $this->db->set('b.deleted', 1);
    $this->db->where('b.id',  $id);
    $this->db->update('journal as b');
Run Code Online (Sandbox Code Playgroud)