Php 编码点火器';s activerecord set()方法将我的值视为列名

Php 编码点火器';s activerecord set()方法将我的值视为列名,php,mysql,codeigniter,activerecord,sql-update,Php,Mysql,Codeigniter,Activerecord,Sql Update,我正在研究codeigniter框架。在其中,我必须编辑数据库中具有特定列的行 我尝试了以下代码,但它给了我错误: “字段列表”中的未知列“Vendor_1360622286” UPDATE `vendors` SET vendor_id = Vendor_1360622286, vendor_name = fsd, vendor_address = fds, vendor_phone = fsdf, vendor_email = sdfsdfsd WHERE `

我正在研究codeigniter框架。在其中,我必须编辑数据库中具有特定列的行

我尝试了以下代码,但它给了我错误:

“字段列表”中的未知列“Vendor_1360622286”

UPDATE `vendors`
SET vendor_id = Vendor_1360622286,
    vendor_name = fsd,
    vendor_address = fds,
    vendor_phone = fsdf,
    vendor_email = sdfsdfsd
WHERE `vendor_id` = 'Vendor_1360622286'
代码:

$this->db->set('vendor_id', $data['vendor_id'], FALSE);
$this->db->set('vendor_name', $data['vendor_name'], FALSE);
$this->db->set('vendor_address', $data['vendor_address'], FALSE);
$this->db->set('vendor_phone', $data['vendor_phone'], FALSE);
$this->db->set('vendor_email', $data['vendor_email'], FALSE);
$this->db->where('vendor_id', $data['vendor_id']);
$status = $this->db->update('vendors');
知道它为什么会给我错误吗?

试试下面的代码:

$update_data=array("vendor_id"=> $data['vendor_id'],"vendor_name"=> $data['vendor_name'],"vendor_address"=> $data['vendor_address'],"vendor_phone"=> $data['vendor_phone'],"vendor_email"=> $data['vendor_email']);
$condi=array("vendor_id"=>$data['vendor_id']);
$this->db->where($condi);
$res=$this->db->update("vendors",$update_data);
if($res)
echo "Recored Updated";
else
echo "Not Updated";

您正在将第三个参数作为
FALSE
传递给
set()
,因此它不能正确地转义字符串值。查询应该是
updatevendors SET vendor\u id='vendor\u 1360622286',vendor\u name='fsd',vendor\u address='fds',vendor\u phone='fsdf',vendor\u email='sdfsdfsd',其中vendor\u id='vendor\u 1360622286'

只需从调用中删除
FALSE
参数,就可以了。

尝试以下操作:

public function update($data)
         {
             $db = $this->db;
             $db->where('vendor_id', $data['vendor_id'])->update('vendors', $data);

             if ($db->affected_rows())
             {
                 return true;
             }
             else
             {
                 return false;
             }
         }

数据数组必须包含id和所有要更改的信息。

没有解释为什么OPs代码不起作用以及他为什么要编写此代码?