Codeigniter活动记录更新 - 错误

时间:2013-04-15 19:44:45

标签: php mysql codeigniter

我正在尝试进行简单的更新,我将数组从Controller传递给模型。但我收到以下错误:

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
  );

CONTROLLER

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

MODEL

 <?
 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 个答案:

答案 0 :(得分: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()时,不需要将表名以外的任何内容传递给插入或更新函数。

相关问题