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 :

Requête préparée, retour d'erreur à masquer [PDO]


Sujet :

PHP & Base de données

  1. #1
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut Requête préparée, retour d'erreur à masquer
    Bonjour,

    Je teste une requête préparée avec PDO, et je fais délibérement une faute de syntaxe dans ma requête qui me renvoie donc :

    Fatal error: Uncaught exception 'PDOException' with message 'SQLSTATE[42S22]: Column not found: 1054 Unknown column
    Sur le server de production je n'affiche pas les erreurs PHP, je les loggue cependant. Mais une erreur PDO de ce type bloque tous les traitements qui suivent et je voudrais pouvoir informer l'internaute d'un problème sur l'application .

    Je ne parviens pas à déceler l'erreur avec cette syntaxe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $this->query_prepare = $this->pdo->prepare($this->query);
    if ($this->query_prepare === FALSE) etc....
    Sachant que $this->pdo = mon PDO.

    Je n'entre dans aucune des deux conditions if ou else car le traitement s'annule totalement avec le fatal error indiqué plus haut.

    Que puis-je faire pour renseigner l'internaute sans qu'il voit se message d'erreur que je masquerai depuis le php.ini?

    Merci
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    C'est une exception qui est levée, il faut donc la "catcher" si tu veux continuer ton traitement en faisant ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    try
    {
    $this->query_prepare = $this->pdo->prepare($this->query);
    if ($this->query_prepare === FALSE) etc...
    }
    catch(PDOException $ex)
    {
    // log exception
    }
    l'exception a un certain nombre de méthodes par défaut dont "getMessage()" qui permet de récupérer le message d'erreur si tu veux le logger.

  3. #3
    Membre averti Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Points : 439
    Points
    439
    Par défaut
    Aaah j'y avais pas pensé! Pourtant j'utilise les try and catch partout dans mon objet. Une vieille habitude, je ne suis pas encore habitué!

    Merci!
    Développeur Web sénior (2005) spécialisé Symfony2 - Je tiens mon petit blog tranquillement, viens faire un tour http://www.ikonenn.com

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

Discussions similaires

  1. [PDO] Erreur insert requêtes préparées
    Par Invité dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 13/03/2014, 12h00
  2. Requête JSON : capter l'erreur de retour
    Par Floweract dans le forum Langage
    Réponses: 2
    Dernier message: 15/04/2013, 10h43
  3. Erreur avec les requêtes préparées
    Par hannibal.76 dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/04/2012, 10h09
  4. [PDO] Insert avec requête préparée, erreur champs datetime
    Par maxwell374 dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 29/07/2011, 11h36
  5. [MySQL] Erreur dans requête préparée
    Par skandaboy dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 07/01/2011, 12h33

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