Aucune des réponses ici n'est fausse. Mais en fait, les trois combinés sont la vraie réponse. Vous devez absolument définir
$this->pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
comme dit par Cerad .
À partir de maintenant, chaque problème concernant tout ce qui concerne la base de données est levé via une exception de type PDOException
. Vous n'avez simplement pas besoin de lever votre propre Exception
comme dit par ladar parce que c'est inutile. Prends juste le ladar code et convertissez-le en
...
$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';
}
Et ne jetez rien par vous-même.
Ensuite, une très bonne façon de déboguer les requêtes PDO consiste à utiliser le script catch lié par Basic que vous pouvez trouver ici encore une fois.
En combinant ces éléments, vous disposerez d'un moyen flexible, propre et facile à déboguer pour détecter toutes les erreurs qui pourraient survenir.