IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

[POO] Gérer les erreurs MySQL par des exceptions


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 16
    Points
    16
    Par défaut [POO] Gérer les erreurs MySQL par des exceptions
    Bonjour,
    J'effectue actuellement un stage basée sur la programmation php dans une société. Aujourd'hui, j'ai lus un article intéressant sur la gestion des exception en php. En fait, pouvoir géré les exception de manière uniforme et "propre" m'intéresse beaucoup; je m'explique : la plupart du temps, lorsque dans mon code j'effectue des requêtes sql (mysql_query), je place derrière la requête ceci : $resultBazard = mysql_query($queryBazard) OR DIE (mysql_error());
    Je fait ceci pour pouvoir débugger lorsque il y a une erreur mais même avec ceci, les erreurs ne sont pas toujours facile à repéré et de plus tout le processus s'arrête en plein milieu de sa course et cela peut amenés certains résidus dans la base (ex : la requête crée un objet mais il s'arrette lorsqu'il doit créer des item qui pointes vers cet objet...).
    Ma question est donc : est il possible de créer une classe exception qui gère les erreur mysql ? Quelque chose du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ojb = new ClassException;
    try{
          $obj->query($query);
          $obj->query($query2);
          $obj->query($query3);
    }
    catch(MyException $e){
           echo $e -> getError();
    }
    Cela fonctionnera-il ? (en supposant que la classe ClassException soit créée etc.) Si oui, comment je pourrait faire pour tout mettre dans une autre page, proprement ?

    oups j'avais oublier de vous remercier d'avance pour vos réponses

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Je n'ai pas testé, mais apres un rapide regard sur le code ca m'a l'air pas mal du tout...

    Personnellement, je changerais juste les variables de connexion pour les avoir dans la classe (juste histoire de simplifier la création de l'objet)

    et je modifierais la fonction RetourneErreur() comme ceci :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public function RetourneErreur() {
            $msg  = '<div><strong>' . $this->getMessage() . '</strong>';
            $msg .= ' Ligne : ' . $this->getLine() . '<br />';
    	$msg .= mysql_error() . '</div>';
            return $msg;
        }

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Février 2008
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2008
    Messages : 26
    Points : 16
    Points
    16
    Par défaut
    Bonjour et merci pour ta réponse darkstar123456,

    J'aurais encore une question avant de me décidé à passé le cap lol

    en fait j'utilise un compilateur de template (smarty) et tout le code est sur une page mais les requête ne se font pas à la suite, comme dans l'exemple que j'ai cité... je fait une query par ci, une query par là etc... et donc, je me demandais si syntaxiquement ce serai correct de faire un try sur tout l'ensemble du code et, à la fin, faire un catch pour toute les erreurs qui peuvent survenir...
    merci encore pour vos réponse.

Discussions similaires

  1. [MySQL] Trier les resultats conditionnés par des OR
    Par Kaldyris dans le forum Requêtes
    Réponses: 2
    Dernier message: 10/02/2011, 15h31
  2. [SQL] Gérer les erreurs des requêtes SQL
    Par eagleleader dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/10/2007, 13h28
  3. [POO] Gérer les exceptions et les erreurs
    Par iowa dans le forum Langage
    Réponses: 9
    Dernier message: 12/10/2007, 06h38
  4. récupérer les erreurs php dans des exceptions
    Par jeanvincent dans le forum Langage
    Réponses: 6
    Dernier message: 14/10/2005, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo