繁体   English   中英

没有数据点火器的更新表

[英]Update table with no data codeigniter

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

但是由于某种原因, permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . "将不起作用: ''

引发错误。

您的SQL语法有误; 检查与您的MySQL服务器版本相对应的手册,以在第5行的'WHERE user_group_id ='10'附近使用正确的语法UPDATE user_group SET name ='Demonstration',权限= 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 . "'
    ");
}

怎么了?

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

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 . "'
    ");
}

试穿

$this->db->last_query();

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM