CodeIgniter:'where子句'中的未知列xxx

时间:2009-10-31 15:55:03

标签: activerecord codeigniter

我正在研究一个bug(?)几个小时,但是不能解决它。

这是我的代码:

 if(!$this->db->get_where('merken',array('m_merken' => $brand))->count_all_results()){

      $insetData = array('m_name' => $brand);
      $this->db->insert('merken', $insetData);

 }

$ brand在此预览中包含'Acer'。

 A Database Error Occurred

    Error Number: 1054

    Unknown column ‘Acer’ in ‘where clause’

    SELECT * FROM (`merken`) WHERE `m_name` = Acer 

我想检查它是否已经存在,但它不会很好用。

1 个答案:

答案 0 :(得分:1)

没有引号,你的陈述:

SELECT * FROM (`merken`) WHERE `m_name` = Acer

Acer指的是列名。如果您的意图是字符串文字,请将其放在单引号中,如:

SELECT * FROM (`merken`) WHERE `m_name` = 'Acer'

此外,作为良好的编程习惯,即使列表很长,也要避免SELECT *,最好是SELECT每个要返回的列。

- 编辑 -

我怀疑我忽略了这一点...... SQL已生成。要检查两件事:

m_name是否已正确声明为string/varchar/char字段? 如果做不到这一点,请尝试使用引号将品牌名称设置为'Acer'。我怀疑这是一个合理的解决方案。