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.