我有一个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();