Php 编码点火器db->;delete()总是返回true吗?

Php 编码点火器db->;delete()总是返回true吗?,php,ajax,json,codeigniter,Php,Ajax,Json,Codeigniter,我已经显示了带有记录和“删除”图像的表格。在删除图像时,单击我正在使用ajax删除记录。supose有三个id为40、41、42的记录 如果我删除ID=40的记录,response返回“1”,记录被删除, 下次如果我再次点击删除图像,它会再次返回“1” codeigniters db->delete()方法始终返回“1”? 我是否需要手动检查记录是否存在,然后继续删除? 下面是我在ajax.php中的代码 $res = $this->db->delete(tbl_user_group

我已经显示了带有记录和“删除”图像的表格。在删除图像时,单击我正在使用ajax删除记录。supose有三个id为40、41、42的记录 如果我删除ID=40的记录,response返回“1”,记录被删除, 下次如果我再次点击删除图像,它会再次返回“1”

codeigniters db->delete()方法始终返回“1”? 我是否需要手动检查记录是否存在,然后继续删除? 下面是我在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"));
如果删除操作成功,db->delete()将返回
TRUE
。如果无法删除该行,它将只返回
FALSE
。我认为您应该检查以下内容:

$this->db->affected_rows();

它返回一个数字而不是一个布尔值,您可以使用您的If条件来检查。

当我们在codeigniter 2.2.0中从db中删除时 使用
$this->db->delete()
我们可以使用两个标志进行操作: 1. <代码>$this->db->\u错误消息() 和 2. <代码>$this->db->受影响的行()

在db查询之后,我们得到1和2,如:

已删除:“”,1

未删除:“”,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';
}

从CI 3.0开始,这个输出:
调用未定义的方法CI\u DB\u mysqli\u driver::error\u message()
-似乎最好的方法是使用受影响的行()@taber,因为它在CI 3.0中已更改为
$this->DB->error()
,返回一个包含
代码
消息
的数组。使用
$this->db->error()