Só para finalizar, meu Model ficou assim:
$this->db->insert($this->_table, $data);
$ret = $this->db->insert_id();
if (!$ret)
{
$msg = $this->db->_error_message();
$num = $this->db->_error_number();
throw new Exception("Error(".$num.") ".$msg);
}
Dessa forma, consigo tratar o erro caso ocorra dentro do meu TRY/CATCH no
controller, mostrando de forma amigável na tela para o usuário.
try
{
$id = $this->m_dados->_insert($dados);
$data['message'] = '<div class="notification n-success">Add
Sucess</div>';
}
catch(Exception $ex)
{
$data['message'] = '<div class="notification
n-error">'.$ex.'</div>';
}
Abraços,
From: [email protected]
To: [email protected]
Date: Wed, 16 Feb 2011 21:52:04 -0200
Subject: [CodeIgniter] [Codeigniter] - Tratamento de erros de BANCO DE DADOS -
PRIMARY KEY VIOLATED, ETC.. ETC..
Boa Noite,
Gostaria de saber se tem de alguma forma capturar no TRY CATCH, os erros do
BANCO DE DADOS.
Eu vi que se alterar essa linha de ele pelo menos para de mandar a mensagem
para o browser, e posso tratar o número do erro no insert por exemplo:
$db['default']['db_debug'] = TRUE;
to
$db['default']['db_debug'] = FALSE;
Ai eu teria que tartar utilizando:
$this->db->_error_message();
Ou
$this->db->_error_number();
Está correto, alguma forma ideal para tratamento de erros de banco de dados?
Será que fui claro?
Tipo do erro:
A Database Error OccurredError Number: 1364
Field 'Id_Adv' doesn't have a default value
Obrigado à todos.
_______________________________________________ [email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
--------------------------- Oportunidade de neg�cio
http://www.franquiasargohost.net ---------------------------
_______________________________________________
[email protected]
http://www.codeigniter.com.br
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br
---------------------------
Oportunidade de negócio
http://www.franquiasargohost.net
---------------------------