更新表没有数据codeigniter

时间:2015-02-19 15:39:28

标签: php codeigniter

当我取消选中所有复选框并提交表格时。它应该清除权限列匹配组ID。它不是。如果某些$data['permissions']存在,则会更新,但如果我取消选择并提交表单,则需要清除列。

但由于某些原因,permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . "无效: ''

引发错误。

  

您的SQL语法有错误;检查手册   对应于您的MySQL服务器版本,以便使用正确的语法   在第5行UPDATE user_group SET名称附近'WHERE user_group_id ='10''   ='Demonstration',permission = WHERE user_group_id ='10'文件名:C:/Xampp/htdocs/codeigniter-3/application/modules/admin/models/user/model_user_user_group.php   行号:19

模型功能

public function editUserGroup($user_group_id, $data) {
    $this->db->query("UPDATE " . $this->db->dbprefix . "user_group 
        SET 
        name = " . $this->db->escape($data['name']) . ", 
        permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . "
        WHERE user_group_id = '" . (int)$user_group_id . "'
    ");
}

什么错了?

2 个答案:

答案 0 :(得分:0)

我已经解决了问题,我不得不使用转义引号"''"

permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : "''") . "

模型

public function editUserGroup($user_group_id, $data) {
    $this->db->query("UPDATE " . $this->db->dbprefix . "user_group 
        SET 
        name = " . $this->db->escape($data['name']) . ", 
        permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : "''") . "
        WHERE user_group_id = '" . (int)$user_group_id . "'
    ");
}

答案 1 :(得分:-1)

尝试放

$this->db->last_query();

在函数末尾,以便您可以检查已执行的查询。