由于某种原因,此 SQL 语句不起作用。谁能告诉我为什么?(如果重要的话,这是一个 Codeigniter 网站)
这是我的模型(我的错误指向我)
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
我的表被称为“用户”,我有一个“名字”和“ID”列。
想法?
编辑
仅仅因为它似乎出现了一点,我想澄清一下我在这里传递的变量没有引号或反引号。它们被添加到某个地方(它似乎是 ->query 方法,但我无法想象这是真的?.. 不知道,因为这是我的第一个 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';
}
}