使用CodeIgniter更新MySQL表时出错


Error On Updating MySQL table using CodeIgniter

我有一个CodeIgniter应用程序,它使用CodeIgniter中的"update()"辅助方法更新表中的两列。

这是控制器:

      $data_v   = array(                
            "status" => $resp->Code
        );
        if($resp->Code == "0") {
            $data_v['name'] = $responseObject->AccountName;
                }
         $this->employees_model->update_employee($id, $data_v);

型号为:

     public function update_employee($id, $data) {
    $id = (int)$id;
    $this->db->where('empID', $id);
    $this->db->update('emp', $data);
}

问题是我得到了以下错误:

 You have an error in your SQL syntax; 
  check the manual that corresponds to your MySQL server version   
   for    the    right syntax   to use near 'NEO WHERE `empID` = 20160'   at line 1

   UPDATE `emp` SET `status` = 0, 
  `name` = ALIBABA, THIEF NEO WHERE `empID` = 20160

我对SQL的了解表明(我相信)字符值

     ALIBABA, THIEF NEO 

需要用单引号括起来才能看起来像这个

    'ALIBABA, THIEF NEO'

我该如何解决此问题?如果问题不是用引号括起字符值。。。我该怎么办?感谢

是的,您需要在字符串前后添加'

的变化

$data_v['name'] = $responseObject->AccountName;

进入

$data_v['name'] = "'".$responseObject->AccountName."'";

您可以使用db类中的escape()方法来完成此操作。Escape方法将找出数据类型并在字符串中添加引号。

例如:$data_v['name']=$this->db->escape($responseObject->AccountName);

注意:您也可以使用$this->db->escape_str();