Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/codeigniter/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Activerecord 编码点火器:未知列xxx位于‘;其中第’条;_Activerecord_Codeigniter - Fatal编程技术网

Activerecord 编码点火器:未知列xxx位于‘;其中第’条;

Activerecord 编码点火器:未知列xxx位于‘;其中第’条;,activerecord,codeigniter,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在此

我现在正在处理一个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 

我想检查它是否已经存在,但它不会很好地工作

如果没有引号,您的声明:

SELECT * FROM (`merken`) WHERE `m_name` = Acer
Acer
指的是列名称。如果您的意图是字符串文字,请将其放在单引号中,如中所示:

SELECT * FROM (`merken`) WHERE `m_name` = 'Acer'
此外,作为一种良好的编程实践,避免使用
SELECT*
,最好选择要返回的每一列,即使列表很长

--编辑--

我想我没抓住重点。。。生成SQL。有两件事需要检查:

m_name
是否正确声明为
string/varchar/char
字段?
否则,请尝试将品牌名称设置为带有引号的“Acer”。不过,我怀疑这是一个合理的解决方案。

没有引用,您的声明:

SELECT * FROM (`merken`) WHERE `m_name` = Acer
Acer
指的是列名称。如果您的意图是字符串文字,请将其放在单引号中,如中所示:

SELECT * FROM (`merken`) WHERE `m_name` = 'Acer'
此外,作为一种良好的编程实践,避免使用
SELECT*
,最好选择要返回的每一列,即使列表很长

--编辑--

我想我没抓住重点。。。生成SQL。有两件事需要检查:

m_name
是否正确声明为
string/varchar/char
字段?
否则,请尝试将品牌名称设置为带有引号的“Acer”。不过,我怀疑这是一个合理的解决方案。

我看到我的输入错误“m_merken”必须是“m_name”,但仍然是一个错误。;-)我看到我的输入错误“m_merken”,必须是“m_name”,但仍然是一个错误m_名称声明为varchar(255),我也尝试了以下代码:if($this->db->get_where(“merken”,array(“name”=>“$brand”))->count_all_results()==0){$insettdata=array(“name”=>“$brand”);$this->db->insert(“merken”,insettdata);echo“success”}其他{echo“已经存在”}但当我尝试什么都不返回时,所以出现了一些错误,但不知道是什么。没有错误,也没有成功/存在。如果($this->db->get_where(“merken”,array(“name”=>$brand))->count_all_results()==0){$insettdata=array(“name”=>$brand);$this->db->insert(“merken”,$insettdata);echo“gelukt”}否则{echo“bestaat al?”}现在似乎可以了,谢谢!singe引用并将名称m_name更改为“name”(在代码和数据库中)已经起作用了。感谢您的时间!m_name声明为varchar(255),我也尝试了以下代码:if($this->db->get_where(“merken”,array(“name”=>“$brand”)->count all_results()=0){$insettdata=array(“name”=>“$brand”);$this->db->insert(“merken”,$insettdata);echo“succes”}否则{echo“已经存在”}但是当我尝试什么都不返回时,所以出现了一些错误,但不知道是什么。没有错误,也没有成功。如果($this->db->get_where(“merken”,array(“name”=>$brand))->count_all_results()==0){$insettdata=array(“name”=>$brand);$this->db->insert(“merken“,$insetData);echo“gelukt”}否则{echo“bestaat al?”}现在似乎可以工作了,谢谢!singe引用并将名称m_name更改为“name”(在代码和数据库中)已经工作了。谢谢您的时间!