当我取消选中所有复选框并提交表格时。它应该清除权限列匹配组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 . "'
");
}
什么错了?
答案 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();
在函数末尾,以便您可以检查已执行的查询。