我正在研究一个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
我想检查它是否已经存在,但它不会很好用。
答案 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'
。我怀疑这是一个合理的解决方案。