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 :

Lancer un exception sur une requête échouée [PostgreSQL]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Inscrit en
    Février 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 63
    Points : 48
    Points
    48
    Par défaut Lancer un exception sur une requête échouée
    Bonjour,

    Dans le cadre de mon stage je développe une application de maintenance d'une BDD PostgreSQL en PHP. Je suis amené à faire un update sur un table qui contient un triplet d'id comme clés primaire. Je souhaite faire un update sur l'une de ces clé mais comment faire remonter l'erreur autrement que par un vilain warning si je tente de faire un update alors que le triplet existe déjà. J'ai essayer un Try{}Catch{} mais pg_query ne lève aucune exception donc je ne vois pas trop comment m'en sortir.
    Le but final de cela et d'avorter la requête en cas de violation de l'intégrité référentielle et d'en avertir l'utilisateur.
    Avez-vous des solutions ou des pistes pour m'éclairer un peu?

    Merci,

  2. #2
    Expert éminent Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 564
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 564
    Points : 7 285
    Points
    7 285
    Par défaut
    Essaye plutôt ainsi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
      $dbconn = pg_connect("dbname=publisher") or die("Connexion impossible");
    
      if (!pg_connection_busy($dbconn)) {
          pg_send_query($dbconn, "select * from nexistepas;");
      }
      
      $res1 = pg_get_result($dbconn);
      echo pg_result_error($res1);
    ?>
    Cela provient de http://fr3.php.net/manual/fr/functio...sult-error.php
    Tu y trouveras pas mal de documentation à ce sujet.

    Sinon, si tu veux rester dans la gestion des exception, alors je te conseille d'utiliser PDO. C'est compris dans PHP et ça te permet d'utiliser les mêmes fonctions pour requêter n'importe quelle base (MySQL, PostgreSQL, Oracle, SQLServer, ...) du moment que tu as le bon driver.

    http://fr3.php.net/manual/fr/book.pdo.php

    Tu peux donc ensuite faire tes try{}catch(PDOException $e){} et récupérer les exceptions levées par ta base PostgreSQL:
    http://www.postgresql.org/docs/8.3/i...-appendix.html
    Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros!


    Code C : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
     
    int main(int argc, char **argv) {
     
        printf("So long, and thanks for the fish, Dennis...\n");
        return 0;
    }

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

Discussions similaires

  1. exception sur une requête
    Par jeandadaf dans le forum VB.NET
    Réponses: 1
    Dernier message: 07/05/2009, 20h54
  2. Réponses: 1
    Dernier message: 22/10/2008, 11h29
  3. Pb sur une requête SQL (de champ vide)
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 01/07/2004, 11h12
  4. Problème sur une requête INSERT
    Par Marion dans le forum Langage SQL
    Réponses: 3
    Dernier message: 17/06/2003, 08h45
  5. problème sur une requête!!!!!
    Par Mcgrady_01 dans le forum Langage SQL
    Réponses: 2
    Dernier message: 13/06/2003, 01h17

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