2016-12-24 62 views
0

检查数据库事务中是否没有错误。 我目前将我的CI 2.1.4应用程序升级到CI 3.0.x应用程序,除了下面的代码外,一切看起来都很好。检查数据库配置项中是否没有错误3

模式

$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

从版本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(); 
} 

如果你想从数据库中的错误,不要忘了在config/database.php文件中设置db_debug = FALSE