Mysql
 sql >> Base de données >  >> RDS >> Mysql

Comment utiliser le bloc try-catch pour PDO

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.