2016-12-24 8 views
0

dbトランザクションでエラーがないかどうかを確認します。 私は現在、CI 2.1.4アプリケーションをCI 3.0.xアプリケーションにアップグレードしましたが、以下のコードを除いてすべて問題なく表示されます。db CI 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.phpdb_debug = FALSEを設定してください。

関連する問題