Olá a todos, será que alguém saberia informar como poderia fazer um
tratamento dos erros gerados pelo banco de dados no CI, por exemplo:

Quando tentamos inserir um registro com uma chave duplicada, o banco de
dados (no meu caso MySQL) retorna um erro e o CI captura esse erro
retornando uma mensagem formatada. O mesmo ocorre quando usamos integridade
referencial, ao tentar remover um registro marcado como restrict em seu
relacionamento, o banco de dados retorna um erro e o CI captura o erro e
exibe a mensagem pra gente.

Existe alguma forma de capturar tal erro gerado pelo banco de dados, com o
objetivo de manipula-lo, para posterior exibição da informação ao usuario?
ou seja, algo como: se ao tentar cadastrar um registro com a chave primária
já existente exibir ao usuario que a chave já está cadastrada.

Na tentativa de solucionar o problema, fiz algo do tipo no meu MODEL:

function excluir ($codigo){
        $this->db->where('codigo_mar', $codigo);
        $this->db->delete('marca_equipamento');
        return $this->db->_error_number();
}

e desativei a mensagem padrão do CI, mudando $db['default']['db_debug']
para  FALSE:

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

no meu controlador eu avalio o código do erro retornado:

-se o erro retornado é 0(zero), tudo ocorreu bem.
-senão verifico o código do erro e exibo a mensagem para cada erro
específico.

 $retorno = $this->marca_equipamento_model->excluir($codigo);
 if ( $retorno == '0'){
      echo "OK!";
 }else{
      echo "erro " . $retorno;
 }

Não sei se esse é o melhor método, gostaria da opinião do pessoal sobre a
melhor forma de tratar esse problema.

Agradeço desde já
_______________________________________________
Lista mailing list
[email protected]
http://codeigniter.com.br/mailman/listinfo/lista_codeigniter.com.br

Responder a