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 non parsée


Sujet :

PHP & Base de données

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut requête non parsée
    Bonjour,

    j'effectue des requêtes sur une base oracle à partir de php.
    J'ai une gestion d'erreur qui me retourne les erreurs lors de la connexion à la base, du parsing et de l'exécution de la requête.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
      $conn = ocilogon(LOGIN, PASSE, INSTANCE, 'WE8ISO8859P15');
      if(!$conn)
        echo "no connexion<br>";
      else
        echo "connexion<br>";
    $stmt=ociparse($conn, $insert);
              if(!$stmt)
                echo "no statement<br>";
              else
                echo "statement<br>";
              $e=ociexecute($stmt, OCI_DEFAULT);
              if(!$e)
                echo "no exec<br>";
              else
                "exe";
    Lors de l'exécution de ce script, la connexion fonctionne. Cependant le parsing n'est pas effectuée et la requête est automatiquement effectuée.
    Je ne comprends pas pourquoi le parsing n'est pas effectué.

    Quelqu'un aurait une idée?
    Nulla dies sin linea

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour ,
    Merci d'indiquer la version et surtout de dire ce que vous entendez par parsing , car il y aune différence entre le parse d'Oracle et de PHP

    Jaouad

  3. #3
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    j'utilise php 4.2 et oracle 8.1.2. Je parle du parse d'Oracle qui analyse la requête sur la connexion
    Nulla dies sin linea

  4. #4
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Oracle effectue pour toutes les requêtes un parse , le distinguo se fait entre hard parse et Soft Parse .

    QU'est ce qui vous fait dire qu'Oracle n'effectue pas de parse ?

  5. #5
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    au fait, dans mon code je teste l'analyse de la requête de la sorte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
              $stmt=ociparse($conn, $insert);
              if(!$stmt)
                echo "no statement<br>";
              else
                echo "statement<br>";
    au final rien ne s'affiche donc $stmt n'a pas de valeur. Ce qui fait que le test ne s'effectue pas.
    Si mon ociparse était faux, j'aurai d'afficher "no statement", s'il retournait TRUE, j'aurais d'afficher "statement". Mais là je n'ai rien d'afficher.
    Et par la suite, l'erreur que je récupère sur mon serveur Apache est la suivante.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    21-Oct-2005 11:04:43] PHP Warning:  ociexecute(): OCIStmtExecute: ORA-24337: statement handle not prepared
     in /var/www/html/test/demande/result_demande.php on line 90
    Si j'ai bien compris, la requête n'est pas exécutée car elle n'a pas été analysée...
    Nulla dies sin linea

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    l'erreur est du au fait que tu n'a rien dans ociparse

    qu'elle est ta version précise d'Oracle

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    ma version d'oracle est la 8.1.7.

    $stmt=ociparse($conn, $insert);
    la connexion à la base fonctionne et ma requête fonctionne quand elle est exécutée sous Oracle directement.
    Nulla dies sin linea

  8. #8
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    il y a un bug sur la 8172

    peut tu verifier ta release ?

  9. #9
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    c'est bien la 8.1.7.2
    Quel est le bug?
    Nulla dies sin linea

  10. #10
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    je me suis trompé.
    Ma version est la 8.1.7.0.0
    désolé
    Nulla dies sin linea

  11. #11
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    tu vérifie la release ainsi :

    sous sql*plus :

    show release

  12. #12
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    release 801070401
    Nulla dies sin linea

  13. #13
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Donc c'est une 8174 et non pas une 8170

    est ce que la requête s'éxécute bien sous Sql*Plus ?

  14. #14
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    sous sql plus la ligne est bien créée.
    Nulla dies sin linea

  15. #15
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    DOnc cela est un probléme PHP , un post dans le forum PHP pourrat t'aider .

    Souhaites tu que je transfére ce post ?

    jaouad

  16. #16
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    oui je veux bien.

    Merci de ton aide
    Nulla dies sin linea

  17. #17
    Membre éclairé
    Avatar de genova
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 487
    Points : 790
    Points
    790
    Par défaut
    que vaut $insert ?
    Testez le forum Fire Soft Board, un forum libre, gratuit et français.

    Système de template de phpBB - Lisez la FAQ PHP avant toute question si vous débuttez en PHP.

  18. #18
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    oui je veux bien que tu me transfères le post.

    Merci pour ton aide.
    Nulla dies sin linea

  19. #19
    Membre actif
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    314
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 314
    Points : 206
    Points
    206
    Par défaut
    $insert="insert into DEMANDE(no_type, no_niveau, no_util, codcol, entorg,".
    " date_demande, description, direction, service) values".
    "($type, $niv, $util, '$coll',$ent, '$day', '$desc', '$dir', '$ser')";
    Nulla dies sin linea

Discussions similaires

  1. Exécuter une requête non-query
    Par Piet dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 07/02/2007, 15h01
  2. [MySQL] Requête non exécutée
    Par harlock59 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 03/05/2006, 15h42
  3. [MySQL] Retour d'une requête non voulue
    Par gregal dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 26/04/2006, 15h57
  4. Réponses: 1
    Dernier message: 07/10/2005, 10h44
  5. traquer des requêtes non bindées
    Par aline dans le forum Oracle
    Réponses: 3
    Dernier message: 14/03/2005, 11h56

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