删除时如何在codeigniter中捕获数据库错误?

时间:2016-01-17 08:03:51

标签: php codeigniter mysqli

我想在codeigniter中自定义或处理查询错误删除,但问题是它不起作用。 如何使用try catch或if else语句处理它?

控制器:

public function delete($id){
    $this->load->model('m_customer_info');
    $delete=$this->m_customer_info->delete_data($id);

    $this->get_all_customers(); 
}

型号:

public function delete_data($id){
    $delete="delete from member where idno='$id'";

    try{
        $this->db->query($delete);
    }
    catch(Exception $e)
    {
        echo "<script>alert('Cannot delete because it is a club officer')</script>";
    }

    /*if($delete==true){
        $this->db->query($delete);
    }
    else
        echo "<script>alert('Cannot delete because it is a club officer')</script>";
    */      
}

1 个答案:

答案 0 :(得分:1)

在模型中

public function delete_data($id){

    $this->db->where('idno', $id);
    if (!$this->db->delete('member')) {
        # Delete Failed
        return false;
    }  
    else{
        # delete Sucess
        return true;
    }
}

在控制器中

public function delete($id)
{
    $this->load->model('m_customer_info');
    $delete = $this->m_customer_info->delete_data($id);
    if ($delete == false) {
        echo "Delete Failed";
    }
    else{
        $this->get_all_customers(); 
    }

}