检查db CI 3中是否没有错误

时间:2016-12-24 12:14:25

标签: codeigniter-3

检查db事务中是否没有错误。 我目前将CI 2.1.4应用程序升级到CI 3.0.x应用程序,除了下面的代码,一切似乎都很好。

模型

 $result = array();
 $result['error'] = $this->db->_error_number(); // Changed to $this->db->error();
 $result['message'] = $this->db->_error_message(); // How do I replace it with CI new function for error message?
 return $result;

控制器

如何检查控制器中是否有问题?

if(!$result['error']['code'])
{       

// success          

} else 
    {   

// Error    

}

1 个答案:

答案 0 :(得分:0)

从版本3.0.x开始,修改了db错误检查。

在您的模型中,您可以使用:

// run the wanted operation
if($this->db->...)
{
    // it ran okay
}
else
{
    // returns array('code' => '...', 'message' => '...')
    $error = $this->db->error(); 

    switch($error['code']){ 
       case <ERROR-NUMBER>:
           throw new Exception("<CUSTOM-MESSAGE>");
           break;
       default:
           throw new Exception($error['message']);
    }
}

然后,您可以在控制器上捕获异常:

try
{
    // call model function
    $this->{MODEL-NAME}->{FUNCTION-NAME}(...);
}
catch (Exception $ex)
{
    // treats the Exception 
    // $ex->getMessage();
}

如果您想从数据库中获取错误,请不要忘记在db_debug = FALSE文件中设置config/database.php