我正在尝试进行简单的更新,我将数组从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);
}
我在这里做错了什么想法?
答案 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()
时,不需要将表名以外的任何内容传递给插入或更新函数。