如何在不让它最终死亡的情况下捕获数据库错误?

时间:2013-10-16 09:25:54

标签: php sql database codeigniter postgresql

我正在做的是使用Codeigniter活动记录更新行。 DBMS是PostgreSQL。我想抓住错误,而不是像下面这样的屏幕。

enter image description here

如果我解释遵循此过程的原因是,如果更新查询函数正确执行且没有错误,则根据第一个函数的返回值(true或false)执行第二个函数。

我尝试过以下无效的方法。

方法1

    $this->db->where('id', $folio_id);
    $this->db->update('folio', $data);
    if(!empty($this->db->_error_number()))
    {
    echo "ERROR";die;
    }

方法2

    try
    {
        $this->db->where('id', $folio_id);
        $this->db->update('folio', $data);
    }
    catch (Exception $e)
    {
       echo "ERROR";die;
    }  

如果执行的查询没有错误,我想要做的就是返回true,否则如果有错误则返回false。

如何在不让它最终死亡的情况下捕获数据库错误?

1 个答案:

答案 0 :(得分:1)

我不太清楚,但为什么你不从捕获中移除死亡?

$success = true;
try
    {
        $this->db->where('id', $folio_id);
        $this->db->update('folio', $data);
    }
    catch (Exception $e)
    {
       echo "ERROR ".$e.getMessage();
       $success = false;
    } 

if ($success) {
   ...