2017-02-16 56 views
0

我有一個代碼從表中檢索鏈接在一起的數據。下面的代碼錯誤號碼:1054未知列Codeigniter

public function getdatamentor($key) 
{ 
    $this->db->select('iduser'); 
    $this->db->where('idtraining', $key, false); 
    $hasil= $this->db->get('ttraining'); 
    $this->getNama($hasil->result()); 
} 

public function getNama($key) 
{ 
    $this->db->select('nama'); 
    $this->db->where('iduser', $key, false); 
    $hasil = $this->db->get('tmember'); 
    return $hasil; 
} 

但它返回錯誤

Error Number: 1054 

Unknown column 'TWO00000' in 'where clause' 

SELECT `iduser` FROM `ttraining` WHERE idtraining = TWO00000 

Filename: C:/xampp/htdocs/gofastforex/system/database/DB_driver.php 

Line Number: 691 

感謝您的幫助

+0

嘗試使用' TWO00000' –

+0

刪除'false'並重試。 '$ this-> db-> where('iduser',$ key);' –

+0

@AfshanShujat; 'TWO00000'來自控制器的$ key參數 –

回答

0

試試下面

public function getNama($key) 
{ 
    $this->db->select('nama'); 
    $this->db->where('iduser',"$key"); 
    $hasil = $this->db->get('tmember'); 
    return $hasil; 
} 
1

由於使用設置在函數的第三個參數false

$this->db->where('idtraining', $key, false); 

如果設置爲false且值爲字符串,那麼不保護值(Lib不能自動添加單引號)。如果沒有保護,值將被視爲字段名稱。所以你應該刪除或設置true

$this->db->where('idtraining', $key); 

轉換爲SQL:

SELECT `iduser` FROM `ttraining` WHERE idtraining = TWO00000 # Before remove 
SELECT `iduser` FROM `ttraining` WHERE idtraining = 'TWO00000' # After remove 
                ^ ^
             Lib added single quote to protected. 
+0

因爲它是'string',需要引號。 –

+0

但我有數組到字符串轉換錯誤 –

+0

@AhmadFaza請確保變量'$ key'不是一個數組。 –

相關問題