www*_*.me 23 php ajax json codeigniter
我已经显示了包含记录和"删除"图像的表格.在删除图像上单击我将使用ajax删除记录.如果我删除ID = 40的记录,则有三条记录,其中ID为40,41,42,响应返回"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"));
Run Code Online (Sandbox Code Playgroud)
Sud*_*oti 48
该DB->删除()返回TRUE,如果删除操作是成功的.它只会返回,FALSE如果它不能删除该行.我想你应该检查一下:
$this->db->affected_rows();
Run Code Online (Sandbox Code Playgroud)
返回数字而不是布尔值,您可以使用If条件检查.
小智 5
当我们在codeigniter 2.2.0中使用db删除时,$this->db->delete()可以使用两个标志进行操作:1. $this->db->_error_message()
和2。$this->db->affected_rows()
因此,在数据库查询后,我们得到1和2,如:
删除:“”,1
NOT DELETED:'',0 //找不到ID为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';
}
Run Code Online (Sandbox Code Playgroud)