由于某种原因,此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