检查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
}
答案 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
。