我显示了包含记录和“删除”图像的表格。在删除图像上单击我将使用ajax删除记录。有三个记录,ID为40,41,42 如果我删除ID = 40的记录,则响应返回“1”并且记录被删除, 下次如果我再次点击删除图片,它会再次返回“1”。
codeigniters db-> delete()方法总是返回“1”? 我是否需要手动检查记录是否存在然后继续删除? 下面是我的代码iin ajax.php
$res = $this->db->delete(tbl_user_groups, array('owner_id' => $admin,'user_group_id'=>$gid));
if($res) echo json_encode (array("success"=>"true"));
else echo json_encode (array("success"=>"false"));
答案 0 :(得分:47)
如果删除操作成功, db-> delete()将返回TRUE
。如果它不能删除该行,它将只返回FALSE
。我想你应该检查一下:
$this->db->affected_rows();
返回数字而不是布尔值,您可以使用If条件检查。
答案 1 :(得分:4)
当我们从codeigniter 2.2.0中的db中删除时
使用$this->db->delete()
我们可以用两个标志操作:
1. $this->db->_error_message()
和
2. $this->db->affected_rows()
所以在db查询之后我们得到1和2之类的:
删除:'',1
NOT DELETED:'',0 //找不到id的行,但是sql已经完成了
SQL错误:字符串,-1
我的选择如下:
$this->db->delete($this->table,array('id'=>$id));
if ($this->db->_error_message()) {
$result = 'Error! ['.$this->db->_error_message().']';
} else if (!$this->db->affected_rows()) {
$result = 'Error! ID ['.$id.'] not found';
} else {
$result = 'Success';
}