我有一个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'
我该如何解决这个问题?如果问题不是用引号括起字符值......我该怎么办? 感谢
答案 0 :(得分:0)
是的,你是对的,你需要在字符串之前和之后添加'
。
从
改变$data_v['name'] = $responseObject->AccountName;
到
$data_v['name'] = "'".$responseObject->AccountName."'";
答案 1 :(得分:0)
您可以在db类中使用escape()方法来执行此操作。 Escape方法将找出数据类型并在字符串中添加引号。
例如:$ data_v ['name'] = $ this-> db-> escape($ responseObject-> AccountName);
注意:您也可以使用$ this-> db-> escape_str();