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

PHP & Base de données Discussion :

Gestion des erreurs avec PDO [Fait] [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut Gestion des erreurs avec PDO
    Bonjour,
    Débutant avec PDO, je regarde comment gérer les erreurs. La plupart des exemples que je trouve ressemblent à ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try{
    		$db=new PDO('sqlite:mabase');
    	}catch(PDOExeception $e){
    		die("erreur!: ". $e->getMessage());
    	}
    sans plus de détails. Cependant, j'ai également lu que par défaut PDO n'affichait pas les erreurs et qu'il fallait modifier la valeur d'un attribut comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_WARNING);
    Dans les exemples que je trouve, cette ligne apparait après la connexion à la base ce qui me parait logique d'un côté puisque l'on modifie cette attribue pour l'instance créé. D'un autre côté, je me dis que dans ce cas le try/catch lors de ma connexion ne sert à rien puisque l'erreur sera passé sous silence, l'affichage des erreurs n'étant pas encore activé.
    J'espère avoir bien exprimé mon problème.
    Je remercie d'avance ceux qui qui pourront m'éclairer.

  2. #2
    Membre chevronné Avatar de defcon_suny
    Homme Profil pro
    Non pas trop...
    Inscrit en
    Décembre 2006
    Messages
    441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Non pas trop...
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Décembre 2006
    Messages : 441
    Par défaut
    Salut

    En fait, tu ne récupères pas la bonne exception... regarde l'orthographe dans le catch ;-)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    try{
    		$db=new PDO('sqlite:mabase');
    	}catch(PDOExeception $e){
    		die("erreur!: ". $e->getMessage());
    	}

  3. #3
    Membre averti
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2008
    Messages
    32
    Détails du profil
    Informations personnelles :
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2008
    Messages : 32
    Par défaut
    exact j'ai fait une faute de frappe mais mon questionnement reste entier.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2009
    Messages : 28
    Par défaut
    Tu as 2 solutions :

    - Mettre le parametre lors du construct de ton object (4eme parametre dans le new PDO)
    - Generer une exception avec un trigger_error lors du test de la valeur de errorInfo().

    Toutes ses informations se trouvent dans la doc de PHP section PDO (tu as un exemple pour le cas 1 dans la doc de setAttribute)

  5. #5
    Expert confirmé
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 698
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 698
    Par défaut
    tu peux passer le paramètre au constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $dsn = 'sqlite:mabase';
    $nomUtilisateur = '';
    $motDePasse = '';
     
    try {
        $db = new PDO($dsn, $nomUtilisateur, $motDePasse,
            array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION)
        );
    } catch(PDOExeception $e) {
        die("erreur ! : {$e->getMessage()}");
    }
    tu peux regarder là pour plus d'explications :
    http://php.net/pdo.construct

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Gestion des erreur avec aspSmartUpload
    Par zooffy dans le forum ASP
    Réponses: 2
    Dernier message: 07/12/2007, 09h39
  2. gestion des erreurs avec fichier .properties
    Par _momo dans le forum Struts 1
    Réponses: 2
    Dernier message: 20/08/2007, 14h05
  3. [J2EE/JSP] Gestion des erreurs avec une base SQL server 2005
    Par critok dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 30/04/2006, 16h57
  4. Gestion des erreurs avec setjump/longjump
    Par gege2061 dans le forum C
    Réponses: 1
    Dernier message: 05/02/2006, 15h51

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