Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Como usar o bloco try-catch para PDO


Nenhuma das respostas aqui está errada. Mas, na verdade, todos os três combinados são a resposta real. Você definitivamente deve definir
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

como dito por Cerad .

A partir de agora, todos os problemas sobre qualquer coisa relacionada ao banco de dados são lançados via exceção do tipo PDOException . Você simplesmente não precisa lançar sua própria Exception como dito por ladar porque é inútil. Basta pegar o ladar código e convertê-lo em
 ...
 $data = array();
 $model = new BlogModel;

    try{
      $model->save(2,'test');
      $data['result']['message'] = 'Settings saved';
      $data['result']['status'] = 'success';
    }catch(PDOException $e){
        $data['result']['message'] = 'Could not save the settings';
        $data['result']['status'] = 'error';
    }

E NÃO jogue nada sozinho.

Então, uma maneira muito legal de depurar consultas PDO é usar o script catch vinculado por Basic que você pode encontrar aqui de novo.

Combinando essas coisas, você terá uma maneira flexível, limpa e fácil de depurar para capturar todos os erros que possam surgir.