2013-07-29 46 views
6

我是CodeIgniter,PHP和MySQL的新手。我想處理DB生成的錯誤。從Stackoverflow中的一篇文章中,我知道通過以下語句可以捕獲錯誤。如何在CodeIgniter中捕獲數據庫錯誤PHP

$this->db->_error_message(); 

但我找不出使用它的確切語法。假設我想通過下面的語句更新名爲「表格名」表中的記錄:

$array['rank']="8"; 
$array['class']="XII"; 
$this->db->where('roll_no',$roll_no); 
$this->db->update("table_name", $array); 

在這裏,在上面的代碼中,我想,只要任何DB水平衝突發生時即或者字段名趕DB錯誤無效或者發生一些唯一的約束違規。如果有人幫我解決,我會很感激。謝謝。

+0

你試過的嘗試。 .catch塊? Catch(Exception $ e){echo $ e-> getMessage(); } –

回答

6

笨具有以下功能:它

$this->db->_error_message(); 
$this->db->_error_number(); 


if(!$this->db->update("table_name", $array)) 
{ 
    $this->db->_error_message(); 
    $this->db->_error_number(); 
} 
+0

我知道這兩個函數。你能告訴我,我應該把它放在上面的代碼中,怎麼樣? – Joy

+0

@joy檢查我的編輯。 –

+0

我不知道如何應用或使用這個「$ this-> db - > _ error_message();」所以你能幫我解決這個問題嗎? @RajeevRanjan –

5

可以調試數據庫配置在這樣的數據庫錯誤(配置/ database.php中):

$db['default']['db_debug'] = TRUE; 

更多信息閱讀here

您也可以使用Profiler查看所有查詢及其速度。在控制器,你可以把這個:

$this->output->enable_profiler(TRUE); 

更多信息,請閱讀here

1

在笨2版本,

$this->db->_error_message(); 
$this->db->_error_number(); 

在笨3版本,

$db_error = $this->db->error(); 
echo '<pre>';print_r($db_error);echo '</pre>';