由於某種原因,此SQL語句不起作用。誰能告訴我爲什麼? (這是一個笨網站,如果該事項)爲什麼這個MySQL INSERT不能在CI中工作?
這裏是我的模型(在我的錯誤是指向我)
public function edit_profile($ID, $field, $new_info)
{
$sql = "UPDATE users SET ?=? WHERE id=?";
$query = $this->db->query($sql, array($field, $new_info, $ID)); // <<<< LINE 42
return $query;
}
這是我得到
Error Number: 1064
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 ''first_name'='oooo' WHERE id='151'' at line 1
UPDATE users SET 'first_name'='oooo' WHERE id='151'
Filename: /Applications/MAMP/htdocs/MY_SITE/models/member_model.php
Line Number: 42
錯誤
我的表被稱爲「用戶」,我有一個'first_name'和'id'列。
想法?
編輯
只是因爲它似乎要拿出一點我要澄清的是,我路過這裏的變量有不帶引號或反引號。他們被添加到某處(並且它似乎是 - >查詢方法,但我無法想象這是真的?..但是不知道,因爲它是我的第一個CI項目)
以下是傳遞給模型的控制器。 ..
public function profileEdit()
{
$ID = $this->the_user->id;
$field = $this->input->post('edit_field')
$field = strstr($field,'_edit', true);
$new_info = $this->input->post('new_info');
$this->load->model('Member_model');
if($this->Member_model->edit_profile($ID, $field, $new_info)){
echo 'success';
}
else
{
echo 'error';
}
}
「first_name」周圍的引號正在打破您的查詢 –
@JohnConde我認爲這可能是一個報價問題。但是我並沒有把它們放在那裏,變量被動態地分配,並且在這個過程中加入了引號。什麼是更好的方式來做我想要的? –
在sintax中的整數也不能被quetes包圍(即'WHERE id = 151') – Epsil0neR