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 :

Récupérer une erreur Oracle en PHP [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 25
    Points
    25
    Par défaut Récupérer une erreur Oracle en PHP
    Bonsoir a tous,

    J'aimerais savoir si il est possible de catcher une erreur oracle a partir de php ?
    Si oui comment fait on ?

    J'arrive à catcher les erreurs PDO (connexion a la base) mais dès que je déclenche une erreur personnaliser dans oracle et que je fait un PDOException, l'erreur n'est pas prise en charge ...

    Merci a vous !

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par valkiki Voir le message
    je déclenche une erreur personnaliser dans oracle
    cette erreur se fait du coté du serveur Oracle. Comment cette erreur est passée coté client ?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    En C# il suffit de faire un "try ... catch" pour réceptionner l'erreur déclenchée dans oracle.

    Dans oracle, l'erreur déclenchée est sous la forme
    raise_application_error('code_erreur,'libelle_erreur').

    Un try catch devrait pouvoir réceptionner cette erreur mais cela ne fonctionne apparemment pas ...

    Merci de ta réponse : p

    ps : je rappel que le PHP est exécuté coté serveur

  4. #4
    Nouveau membre du Club
    Inscrit en
    Avril 2009
    Messages
    25
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 25
    Points : 25
    Points
    25
    Par défaut
    Bonjour a tous,

    J'ai finalement trouvé comment faire.
    Voici la démarche à suivre pour réceptionner en PHP les erreurs générées avec oracle (raise_application_error)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if (!$Cnx->exec("BEGIN procedure('param1','','param2','Param3'); END;"))
    {
    	print_r($Cnx->errorInfo());
    }
    Je m'explique : on va tester l'appel de la procédure, si la procédure échoue, (donc lorsque le raise_application_error est déclenché) on passe dans la boucle de condition.

    On affiche ensuite l'erreur à l'aide de la méthode errorinfo() disponible avec PDO.

    Attention ! il faut absolument passer par un print_r() pour afficher l'erreur !

    Voila comment on fait ^^
    Bonne journée à vous tous !

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Points : 220
    Points
    220
    Par défaut
    Cela vient sûrement du fait que PDO ne génère pas d'exceptions par défaut, mais on peut lui indiquer de le faire.

    Avez-vous essayé ceci ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
        $dbh = new PDO( /* your connection string */ );
        $dbh->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

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

Discussions similaires

  1. Récupérer le code d'une erreur Oracle
    Par etoileDesNeiges dans le forum SQL
    Réponses: 6
    Dernier message: 04/10/2007, 10h22
  2. Signification d'une erreur Oracle
    Par L_latifa dans le forum Oracle
    Réponses: 6
    Dernier message: 05/04/2006, 13h18
  3. [C#] Récupérer une erreur OleDb
    Par iDaaX dans le forum Accès aux données
    Réponses: 2
    Dernier message: 10/11/2005, 16h28
  4. Réponses: 4
    Dernier message: 05/10/2005, 18h19
  5. Réponses: 8
    Dernier message: 13/09/2005, 21h05

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