【问题标题】:How to catch database error in codeigniter when there is an error in deleting? [duplicate]删除出错时如何在codeigniter中捕获数据库错误? [复制]
【发布时间】:2016-04-22 12:55:52
【问题描述】:

我想在 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>";
    */      
}

【问题讨论】:

标签: php codeigniter mysqli


【解决方案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(); 
    }

}

【讨论】:

  • 仍然显示如下:Please take a look
  • 检查错误 u 删除具有外键的行.. @help-me
  • @HelpMe 是的,你不能这样做。 cz有外键。所以创建另一个列调用is_deletd。 defult 为 0。如果 deleted 更新为 1
  • 由于外键而显示错误,这对我来说没问题。我只是想更改或替换错误消息。
  • 啊,不,你不能这样做,因为它在 CI 中。并使您的环境适合生产和测试
猜你喜欢
  • 2017-08-31
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 2016-07-14
  • 1970-01-01
  • 2019-11-12
  • 1970-01-01
相关资源
最近更新 更多