Php 更新两个表Codeigniter

Php 更新两个表Codeigniter,php,mysql,codeigniter,Php,Mysql,Codeigniter,我试图同时更新两个表tbl_loanledger和tbl_journal。这两个表都有相同的列,例如modified_by、date_modified和deleted 当我尝试运行此程序时,我在此处输入代码,我得到一个错误: 错误号码:1052 字段列表中的“修改人”列不明确 将“贷款”分类账更新为a,日记账更新为b集“由”='1'修改”, `日期\u修改为`2016-06-08',`deleted`=1,其中`a`.`id`=823' 和'b`.'id`='823' 文件名:C:\xampp\

我试图同时更新两个表tbl_loanledger和tbl_journal。这两个表都有相同的列,例如modified_by、date_modified和deleted

当我尝试运行此程序时,我在此处输入代码,我得到一个错误:

错误号码:1052

字段列表中的“修改人”列不明确

将“贷款”分类账更新为a,日记账更新为b集“由”='1'修改”, `日期\u修改为`2016-06-08',`deleted`=1,其中`a`.`id`=823' 和'b`.'id`='823'

文件名:C:\xampp\htdocs\system\system\database\DB\u 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->where('id', $id);
    $this->db->update(tbl_loanledger, $data);

}
试试这个

public function delete($id){

$data = array(
    'a.modified_by' => $this->ion_auth->user()->row()->id,
    'a.date_modified' => date("Y-m-d"),
    'b.modified_by' => $this->ion_auth->user()->row()->id,
    'b.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');

}
试试这个

public function delete($id){

$data = array(
    'a.modified_by' => $this->ion_auth->user()->row()->id,
    'a.date_modified' => date("Y-m-d"),
    'b.modified_by' => $this->ion_auth->user()->row()->id,
    'b.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');

}

不使用join,只需编写两个单独的更新查询

 // 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');

不使用join,只需编写两个单独的更新查询

 // 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');


在列之前使用表名!!抱歉@Saty,你什么意思?我对codeigniterUse列前的表名还不熟悉!!抱歉@Saty,你什么意思?我是codeigniterNot working@kc1994的新手,它不再更新了,我也尝试过更新'a.deleted'=>1和'b.deleted'=>1,但没有运气打印查询,看看哪里有问题,你能帮我吗?$this->db->last\u query;它不打印任何内容,我只是在}之前添加它,在模型中不工作@kc1994它不再更新,我也尝试更新'a.deleted'=>1和'b.deleted'=>1,但没有运气打印查询,看看哪里是issuesorry,你能帮助我吗?$this->db->last\u query;它不打印任何内容,我只是在模型中的}之前添加它。它只更新第一个查询,而不更新第二个查询$sql=$this->db->last\u查询;用于打印第二个查询并检查它返回的内容更新日志为b SET b.modified_by='1',b.date_modified='2016-06-08',b.deleted=1,其中b.id='779',我尝试在phpmyadmin中运行它,结果0行受影响。查询花费了0.0006秒您是否检查了第二次查询的数据库?是的,我已经检查了,顺便说一下,非常感谢您指出@saty,我想我知道发生了什么,我必须为表日志添加另一列,我只更新第一次查询,而不更新第二次查询$sql=$this->db->last\u Query;用于打印第二个查询并检查它返回的内容更新日志为b SET b.modified_by='1',b.date_modified='2016-06-08',b.deleted=1,其中b.id='779',我尝试在phpmyadmin中运行它,结果0行受影响。查询耗时0.0006秒您是否检查了数据库以进行第二次查询?是的,我已经检查了,顺便说一下,非常感谢您指出@saty,我想我知道发生了什么,我必须为表日志添加另一列