Conheça  A Ferramenta LowCode mais moderna e veloz para desenvolvimento PHP: Adianti Creator
Como tratar as mensagens de erro de SQL? Olá! Como tratar as mensagens de erro de SQL? Ex: SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`toranos05`.`ordem_compra_item`, CONSTRAINT `fk_ordem_compra_itens_produto` FOREIGN KEY (`produto_id`) REFERENCES `produto_servico` (`id`)) Eu sei o motivo dela aparecer, sei que não podemos excluir por causa da...
MM
Como tratar as mensagens de erro de SQL?  
Olá!

Como tratar as mensagens de erro de SQL?


Ex:
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails (`toranos05`.`ordem_compra_item`, CONSTRAINT `fk_ordem_compra_itens_produto` FOREIGN KEY (`produto_id`) REFERENCES `produto_servico` (`id`))

Eu sei o motivo dela aparecer, sei que não podemos excluir por causa da chave estrangeira, porém gostaria de incluir uma mensagem amigável explicando ao cliente o porque de não podermos fazer isso.

Desde já, muito obrigado

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (3)


NR

No catch você consegue capturar o código de erro da exceção para comparação:
 
  1. <?php
  2. catch(Exception $e){
  3. var_dump($e->getCode());
  4. }
  5. ?>

Mas ainda acho que nesse caso você pode consultar antes do delete se há vínculo com outras tabelas. Ou também usar uma flag para ativar/desativar os registros ao invés de deletar.
MM

Muito obrigado pela resposta, vou consultar antes do delete mesmo.

Valeeu