Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2005, 11h15   #1
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
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 :
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?
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h17   #2
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
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
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h19   #3
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
j'utilise php 4.2 et oracle 8.1.2. Je parle du parse d'Oracle qui analyse la requête sur la connexion
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h20   #4
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
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 ?
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h28   #5
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
au fait, dans mon code je teste l'analyse de la requête de la sorte.
Code :
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 :
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...
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h33   #6
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
l'erreur est du au fait que tu n'a rien dans ociparse

qu'elle est ta version précise d'Oracle
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h40   #7
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
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.
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h48   #8
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
il y a un bug sur la 8172

peut tu verifier ta release ?
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h53   #9
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
c'est bien la 8.1.7.2
Quel est le bug?
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h56   #10
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
je me suis trompé.
Ma version est la 8.1.7.0.0
désolé
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 11h58   #11
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
tu vérifie la release ainsi :

sous sql*plus :

Citation:
show release
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 12h06   #12
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
release 801070401
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 12h07   #13
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
Donc c'est une 8174 et non pas une 8170

est ce que la requête s'éxécute bien sous Sql*Plus ?
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 12h14   #14
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
sous sql plus la ligne est bien créée.
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 13h30   #15
Rédacteur/Modérateur
 
Inscription : janvier 2005
Messages : 2 320
Détails du profil
Informations forums :
Inscription : janvier 2005
Messages : 2 320
Points : 2 368
Points : 2 368
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
Jaouad est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 13h33   #16
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
oui je veux bien.

Merci de ton aide
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 13h41   #17
Membre éclairé
 
Avatar de genova
 
Inscription : septembre 2004
Messages : 487
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 487
Points : 397
Points : 397
Envoyer un message via MSN à genova
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.
genova est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 13h55   #18
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
oui je veux bien que tu me transfères le post.

Merci pour ton aide.
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/10/2005, 14h08   #19
Membre habitué
 
Inscription : octobre 2004
Messages : 290
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : octobre 2004
Messages : 290
Points : 146
Points : 146
$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')";
illegalsene est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 05h52.


 
 
 
 
Partenaires

Hébergement Web