错误号码:1054未知列Codeigniter

问题描述:

我有一个代码从表中检索链接在一起的数据。下面的代码错误号码: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参数 –

试试下面

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

由于使用设置在函数的第三个参数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'不是一个数组。 –

where方法

第三个参数是逃生

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

更好读到这里

https://www.codeigniter.com/userguide3/database/query_builder.html?highlight=where%20cla#CI_DB_query_builder::where