Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
1671 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  probleme avec ociBindByName !

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

probleme avec ociBindByName !

n°386204
rick@r
coin coin coin
Posté le 07-05-2003 à 16:33:52  profilanswer
 

Salut,
 
J'ai un petit probleme avec la fonction ociBindByName.
 
Voici mon code :
 

Code :
  1. <?php
  2. require ("fonctions.inc" );
  3. if (! empty ($HTTP_POST_VARS)) {
  4. //traitement du formulaire
  5. $identifiant = $HTTP_POST_VARS["Nom_enseignant"];
  6. if ($identifiant == "" ) {
  7.  echo "L'identifiant est obligatoire !\n <BR>";
  8. }
  9. else {
  10.  // requete d'identification.
  11.  $requete = "SELECT I.Role, P.Nom, P.Prenom1
  12.     FROM Intervenant I, Personne P
  13.     WHERE P.Nom = :p1
  14.     AND P.Num_ss = I.Num_ss ";
  15.  $erreur = array ("code" => 0,"message" => "" );
  16.  //Connexion a la base.
  17.  $ok = ($connexion = ociLogon("yann","yann","mabase" ));
  18.  //requete de reconnaissance de l'enseignant.
  19.  if ($ok) {//connexion ok
  20.   //analyse de la requete.
  21.   $ok = ($curseur = ociParse ($connexion, $requete));
  22.  }
  23.  if ($ok) {
  24.  // association entre le parametre et la variable PHP.
  25.   $ok = ociBindByName ($curseur, ":p1", $identifiant, 40);
  26.  }
  27.  //execution de la requete.
  28.  if ($ok) {
  29.   $ok = ociExecute ($curseur);
  30.  }
  31.  //fetch.
  32.  if ($ok) {
  33.   $nombre = ociFetchInto ($curseur,$ligne, OCI_ASSOC);
  34.  }
  35.  if (! $ok) { //erreur quelque part.
  36.   // Si connexionOK, recuperer l'erreur du curseur
  37.   // sinon recuperer l'erreur de la connexion
  38.   $erreur = $connexion?ociError($curseur):ociError();
  39.  }
  40.  //if (! ($ligne = db_executer_requete ($requete, $erreur, $identifiant))) {
  41.   //echo "$erreur[code] - $erreur[message] <BR>";
  42.  //}
  43.  //else {
  44.   echo "$ligne[ROLE] - $ligne[NOM] - $ligne[PRENOM1] <BR>";
  45.  //}
  46. }
  47. }
  48. ?>


 
Je récupère par l'intermédiaire d'un formulaire le Nom_Enseignant et je le stocke dans ma variable $identifiant.
J'ai lié :p1 à identifiant mais quand j'exécute la requete je n'ai aucun tuple resultat.
Quand j'exécute la requete directement avec le Nom_enseignant a la place du parametre je recois bien le resultat.
Une idée ?

mood
Publicité
Posté le 07-05-2003 à 16:33:52  profilanswer
 

n°386214
Masure
Posté le 07-05-2003 à 16:40:06  profilanswer
 

essaye ça :
 

Code :
  1. $ok = ociBindByName ($curseur, ":p1", &$identifiant, 40);
  2. //c'est le & qui est important


 
 
c'est de la reference qu'il faut. Dis moi si c'est bon


Message édité par Masure le 07-05-2003 à 16:40:59
n°386222
rick@r
coin coin coin
Posté le 07-05-2003 à 16:43:39  profilanswer
 

non j'ai deja essayé en faisant ca

n°386237
Masure
Posté le 07-05-2003 à 16:51:12  profilanswer
 

ecrit ta requete en 1 ligne apres le $req ou utilise la concatenation plutot que le retour a la ligne ca fait des blagues desfois.
 
enleve tous les test a la con avec ta variable $ok, plus de if, que du pur

n°386241
rick@r
coin coin coin
Posté le 07-05-2003 à 16:54:24  profilanswer
 

ca n'a rien changé

n°386246
Masure
Posté le 07-05-2003 à 16:56:00  profilanswer
 

Code :
  1. <?php
  2.   require ("fonctions.inc" );
  3.      $identifiant = $HTTP_POST_VARS["Nom_enseignant"];
  4.      echo "$identifiant<br>" ;
  5.      $requete = "SELECT I.Role, P.Nom, P.Prenom1 ";
  6.      $requete .= "FROM Intervenant I, Personne P ";
  7.      $requete .= "WHERE P.Nom = :identifiant ";
  8.      $requete .= "AND P.Num_ss = I.Num_ss ";
  9.      echo "$requete<br>" ;
  10.      $connexion = ociLogon("yann","yann","mabase" ));
  11.      $curseur = ociParse ($connexion, $requete);
  12.      $ociBindByName ($curseur, ":identifiant", &$identifiant, -1); 
  13.      ociExecute ($curseur);
  14.      ociFetchStatement($stmt,$results);
  15.      print_r($results) ;
  16. ?>


 
ca c'est pur (si je me suis pas planté)


Message édité par Masure le 07-05-2003 à 16:58:57
n°386377
rick@r
coin coin coin
Posté le 07-05-2003 à 18:10:16  profilanswer
 

J'ai essayé ton code mais il me sors :  
 

Code :
  1. laltsupr
  2. SELECT I.Role, P.Nom, P.Prenom1 FROM Intervenant I, Personne P WHERE P.Nom = :identifiant AND P.Num_ss = I.Num_ss
  3. Array ( [ROLE] => Array ( ) [NOM] => Array ( ) [PRENOM1] => Array ( ) )


 
Il n'y a rien
Sinon au lieu d'utiliser :p1 je peux mettre directement '$identifiant' dans la requete (et ca marche ce coup ci) meme si j'aurai preferé utiliser ociBindByName


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  probleme avec ociBindByName !

 

Sujets relatifs
probleme avec la fonction shell_exec()[PHP] Probléme chelou: isset() de veut pas marcher !
Probleme mathématiqe[PHP]Probleme de creation de cession/cookie
Probleme avec fseekpetit problème d'externalisation de requete en java
probleme avec FPDFProblème vec la fonction mail....
problème de droit avec Apache et Tomcatprobleme applet java (menu interractif) sous netscape
Plus de sujets relatifs à : probleme avec ociBindByName !


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR