Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Boa tarde pessoal, gostaria de saber como vocês fazem para tratar os erros do mysql pelos números.
Exemplo:
Quando se tem um relacionamento entre 2 tabelas, com PK e FK, e você insere um ON DELETE RESTRICT, você não deixa excluir o registro caso a outra tabela mantén algumas chave estrangeira desse registro, ok ?
Se você tenta excluir ele desta forma, gera um erro parecido com o abaixo:
>
#1451 - Cannot delete or update a parent row: a foreign key constraint fails (sistema1.it_funcionario, CONSTRAINT fk_it_funcionario_it_funcionario_departamento1 FOREIGN KEY (fk_id_funcionarioDepartamento) REFERENCES it_funcionario_departamento (`de ...
Vocês utilizam um try{}catch{} com uma exeção resgatando o numero do evento do mysql (getNumber) e tals ? e passa para uma classe onde existe um switch gigante com todos os erros e mensagens pré-definidas ?
Ou existe uma forma + 'economica' de se fazer isso?
Desde já agradeço as sugestões dos amigos.
Acho meio complicado retornar um erro específico para cada mensagem de erro do mysql. Normalmente usa uma mensagem genérica. De qualquer forma, ao invés de um switch, pode optar por um array, onde o índice é o código do erro e o valor a mensagem retornada.
Pode usar o http://www.php.net/manual/pt_BR/function.mysql-errno.php para captar o valor numérico do erro, e usar a lista de erros que tem no site do Mysql
http://dev.mysql.com/doc/refman/5.0/en/error-handling.html