2013-07-29 14 views
6

Jestem nowy w CodeIgniter, PHP i MySQL. Chcę obsługiwać generowane błędy DB. Z jednego ze stanowisk w Stackoverflow wiedziałem, że po stwierdzeniu można złapać błąd.Jak złapać błędy DB w CodeIgniter PHP

$this->db->_error_message(); 

Ale nie mogę znaleźć dokładnej składni tego użycia. Załóżmy, że chcę zaktualizować rekordy tabeli o nazwie „table_name” przez następujące oświadczenie:

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

Tutaj w powyższym kodzie chcę złapać błąd DB gdy wystąpi naruszenie poziom DB czyli zarówno nazwy pola nie jest ważny lub występuje wyjątkowe naruszenie ograniczenia. Jeśli ktokolwiek mi pomoże, będę wdzięczny. Dziękuję Ci.

+0

Czy próbowałeś spróbować. .catch block? Catch (Exception $ e) {echo $ e-> getMessage(); } –

Odpowiedz

6

CodeIgniter posiada funkcje to

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


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

Znam te dwie funkcje. Czy możesz mi powiedzieć, gdzie powinienem umieścić to w powyższym kodzie i jak? – Joy

+0

@joy sprawdź moją edycję. –

+0

Nie rozumiem, jak zastosować lub użyć "$ this-> db -> _ error_message();" więc możesz mi w tym pomóc? @RajeevRanjan –

5

można debugować błąd bazy danych o konfiguracji bazy danych (w config/database.php) tak:

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

Więcej informacji przeczytać here

Możesz także użyć Profiler, aby zobaczyć wszystkie zapytania i ich szybkość. W kontrolerze można umieścić to:

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

Więcej informacji przeczytać here

1

Na CodeIgniter wersji 2,

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

Na CodeIgniter wersji 3,

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