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