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 :

set_error_handler ne capte pas les erreurs SQL


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut set_error_handler ne capte pas les erreurs SQL
    Bonjour,

    Je me suis défini une fonction qui me liste tout ce qu'une jeune fille doit savoir en cas d'erreur lord de l'exécution de mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    set_error_handler ("onError");
    Ça marche très bien, sauf lorsqu'une requête SQL echoue à cause d'une erreur dans le code SQL. Dans ce cas il ne se passe rien, c'est juste le résultat qui contient FALSE au lieu de l'objet attendu.

    Est-ce qu'il y a moyen de provoquer une erreur comme dans les autres cas, ou est-ce que je dois vérifier après chaque requête son résultat ?

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 699
    Par défaut
    cela dépend de la manière dont vous faites les requêtes SQL
    si vous utilisez PDO par exemple, vous pouvez le configurer pour retourner une exception en cas de réponse imprévue :
    http://php.net/manual/fr/pdo.setattribute.php

  3. #3
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut
    Non, j'utilise Mysqli.

  4. #4
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Bonjour,

    Avec mysqli il y a des tas de façons de faire. Je préfère un simple if et un throw Exception, mais on peut aussi envisager un trigger_error.

    Généralement parlant, j'essaye d'utiliser prioritairement les exceptions, puis de remonter les erreurs en exceptions, en utilisant notamment Throwable en PHP 7 pour gérer mon erreur handler principal.

  5. #5
    Membre très actif
    Homme Profil pro
    Développeur Web
    Inscrit en
    Février 2009
    Messages
    265
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Février 2009
    Messages : 265
    Par défaut
    Citation Envoyé par Théocrite Voir le message
    Avec mysqli il y a des tas de façons de faire. Je préfère un simple if et un throw Exception, mais on peut aussi envisager un trigger_error
    Bon, mais alors il faut ajouter du code après chaque requête, c'est un peu astreignant, il n'y a pas moyen que l'erreur doit déclenchée automatiquement ?

  6. #6
    Membre émérite Avatar de tdutrion
    Homme Profil pro
    Architecte technique
    Inscrit en
    Février 2009
    Messages
    561
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2009
    Messages : 561
    Par défaut
    Franchement, utilises une librairie pour l'accès aux données, genre doctrine dbal ou similaire (voir un ORM si ça correspond à tes besoins, mais un dbal ça te fera peu d'overhead.

    Sinon, utilise PDO, c'est pas aussi top mais comme dit mathieu tu peux lui faire faire des exceptions.

Discussions similaires

  1. PHP n'affiche pas les erreurs.
    Par diabli73 dans le forum Langage
    Réponses: 7
    Dernier message: 10/09/2014, 10h26
  2. <html:errors/> n'affiche pas les erreurs
    Par djidane39 dans le forum Struts 1
    Réponses: 11
    Dernier message: 18/02/2013, 16h05
  3. Réponses: 7
    Dernier message: 14/11/2008, 11h49
  4. Réponses: 2
    Dernier message: 05/06/2007, 16h28
  5. [C#] Comment gérer les erreurs SQL ?
    Par dcollart dans le forum Accès aux données
    Réponses: 1
    Dernier message: 20/06/2006, 13h01

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