2016-06-08 43 views
0

我試圖同時更新2個表tbl_loanledgertbl_journal。兩個表具有相同的列,如modified_by, date_modified and deleted更新兩個表Codeigniter

當我試圖運行此我輸入代碼在這裏,我得到一個錯誤:

錯誤號:在字段列表1052

列 'modified_by' 不明確

UPDATE` loan_ledger` as a,journal as b SET`modified_by` ='1', `date_modified` ='2016-06-08',`deleted` = 1 WHERE`a`.`id` ='823' AND` '```''823'

文件名:C:\ XAMPP \ htdocs中\系統\系統\數據庫\ DB_driver.php

行號:331

這是一個關於如何更新笨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'); 

} 

但如果我只是更新一個表,它是工作,這裏是代碼:

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

} 
+2

在列前使用表名!! – Saty

+0

抱歉@Saty,你是什麼意思?我是新來codeigniter – zen

回答

2

沒有使用加入只是寫兩個單獨的更新查詢爲

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

它只更新第一個查詢,而不是第二個查詢 – zen

+0

'$ sql = $ this-> db-> last_query();'用於打印第二個查詢並檢查它返回的內容 – Saty

+0

UPDATE'journal' as b SET'b'.'modified_by' ='1','b'.'date_modified' ='2016-06-08','b'.'deleted' = 1 WHERE'b'.'id' ='779',我試着在phpmyadmin中運行它,結果0行受到影響。 (查詢花了0.0006秒) – zen

0

試試這個

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

} 
+0

不工作@ kc1994它不再更新,我試圖更新以及'a.deleted'=> 1和'b.deleted'=> 1,但沒有運氣 – zen

+0

你有什麼錯誤? – kc1994

+0

沒有錯誤,它只是加載 – zen

0
<?php 
$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->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('a.id', $id); 
$this->db->where('a.id = b.id'); 
$this->db->update('loan_ledger as a, journal as b'); 
?> 
+0

不能正常工作,只是加載但不更新記錄 – zen