无法在codeigniter中显示自己的错误消息

时间:2018-05-20 11:31:29

标签: php codeigniter mysqli

我正在使用codeigniter3。现在我想删除一条记录,然后显示数据库跟踪错误

  

无法删除或更新父行:外键约束失败   (soft.tbl_item_sub_category,CONSTRAINT   `tbl_item_sub_category_ibfk_1 FOREIGN KEY(category_id)参考文献   tbl_item_category(id)ON UPDATE CASCADE)

主要问题是显示数据库错误看起来很难看。我想显示自己的错误消息。所以我使用$this->db->error()但它不起作用。这是我的删除功能。处理此错误消息,但它不起作用。

删除功能()

public function delete($table,$id){
    $this->db->where('id', $id);
    $this->db->delete($table);
    if ($this->db->affected_rows() > 0) {
        return true; // to the controller
    }
    else {
         $error = $this->db->error(); // to the controller
    }
}

2 个答案:

答案 0 :(得分:0)

选项1

返回false而不是$error = $this->db->error();并访问控制器中的$this->db->error();

选项2

您的方法已修改......

public function delete($table,$id){
    $this->db->where('id', $id);
    $this->db->delete($table);
    if ($this->db->affected_rows() > 0) {
        return true; // to the controller
    }
    else {
        $error = $this->db->error(); // to the controller
        return $error;
    }
}

控制器:

if (($err = $this->some_model->delete($table,$id)) !== true) {
    print_r($err);
}

答案 1 :(得分:0)

  

使用此代码删除记录

<强> Controllere

 public function($id)
 {
    $t = $this->db->query("DELETE FROM table_name WHERE id='$id'");
    $tt = $t->row_array();
    if($tt>0)
    {
        return true;
    }
    else
    {
         $false= $this->db->error();
         return $false;
    }
 }