更新 table 没有数据 codeigniter
Update table with no data codeigniter
当我取消select 我所有的复选框并提交表单时。应该清除权限列匹配组 ID。它不是。如果有一些$data['permissions']
,它会更新,但如果我全部取消select并提交表单,则需要它来清除列。
但是由于某些原因 permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . "
将无法工作 : ''
抛出错误。
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 'WHERE user_group_id = '10'' at line 5 UPDATE user_group SET name
= 'Demonstration', permission = WHERE user_group_id = '10' Filename: C:/Xampp/htdocs/codeigniter-3/application/modules/admin/models/user/model_user_user_group.php
Line Number: 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 . "'
");
}
怎么了?
尝试将
$this->db->last_query();
在函数的末尾,以便您可以检查已执行的查询。
我已经解决了问题,我不得不使用转义引号 "''"
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 . "'
");
}
当我取消select 我所有的复选框并提交表单时。应该清除权限列匹配组 ID。它不是。如果有一些$data['permissions']
,它会更新,但如果我全部取消select并提交表单,则需要它来清除列。
但是由于某些原因 permission = " . (isset($data['permission']) ? $this->db->escape(serialize($data['permission'])) : '') . "
将无法工作 : ''
抛出错误。
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 'WHERE user_group_id = '10'' at line 5 UPDATE user_group SET name = 'Demonstration', permission = WHERE user_group_id = '10' Filename: C:/Xampp/htdocs/codeigniter-3/application/modules/admin/models/user/model_user_user_group.php Line Number: 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 . "'
");
}
怎么了?
尝试将
$this->db->last_query();
在函数的末尾,以便您可以检查已执行的查询。
我已经解决了问题,我不得不使用转义引号 "''"
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 . "'
");
}