2013-04-15 68 views
0

我想做一个简单的更新,我将一个数组从控制器传递给模型。不过,我收到以下错误:Codeigniter有效记录更新 - 错误

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 'id #29 

这里是正在传递的数组:

<? 
$data = Array 
    (
    [name] => last_name 
    [value] => Smith 
    [pk] => 611 
); 

控制器

<? 
function edit_client() { 
    $data = $this->input->post(); 
    $this->load->model('clients_model'); 
    $this->clients_model->update_client_info($data); 
} 

模型

<? 
function update_client_info($data) { 
    $update = $this->db->set($data['name'], $data['value']); 
    $this->db->where('id', $data['pk']); 
    $this->db->update('clients', $update); 
} 

任何想法我在这里做错了吗?

回答

1

问题在于你的$this->db->set()函数。

执行以下操作

$this->db->set('name',$data['name']); 
$this->db->set('value',$data['value']); 
$this->db->where('id', $data['pk']); 
$this->db->update('clients'); 

这应该做的伎俩。 当您使用$this->db->set()时,不需要将表名以外的任何其他内容传递给插入或更新函数。