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

  FORUM HardWare.fr
  Programmation
  PHP

  Connexion a plusieur base de données

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Connexion a plusieur base de données

n°1574773
emploze
Posté le 14-06-2007 à 10:33:48  profilanswer
 

Bonjour je poste ici car ca concerne les base de donnéesen general !
 
 
Alors voila j'aimerais connecter ma base de données MySQL avec ma base de données Oracle !
 
J'ai fait un petit fichier de connection:
 

Code :
  1. <?
  2. //--on se connecte à MySQL-------------------  
  3. echo $db1 = mysql_connect('id', 'mdp', '');
  4. mysql_select_db('adc',$db1);
  5. //--on se connecte à Oracle--------------------
  6. $db2 = Ora_Logon("id","mdr" );
  7. $cursor = ora_open($db2);
  8. ?>


 
Et mon fichier avec mes requetes:
 

Code :
  1. <?
  2. //-------Requete MySql------------------------
  3.                    require ("Conectemysqloracle.php" );
  4.       mysql_select_db($db1);
  5.                    $req1 = mysql_query("select * from machine" );
  6. $res1 = mysql_num_rows($req1); 
  7. ?>
  8. <br>
  9. <?      
  10.     echo 'Il y a '.$res1.' enregistrement(s) dans la table Machine.';
  11. ?>
  12. <?
  13. if($connection = Ora_Logon("dleb@gpao.adcdom.loc","dle" ))
  14. {
  15. if($cursor = ora_open($connection))
  16.     {
  17. mysql_select_db($db2);
  18. $req2 = odbc_exec ("SELECT * from ARTICLE" );
  19. if((Ora_Parse($cursor, $req2)) >= 0)
  20.  {
  21.                    if(ora_exec($cursor))
  22.                    {
  23.                             while(ora_fetch($cursor))
  24.         {
  25.                                   for($index = 0;
  26.                                          $index < ora_numcols($cursor);
  27.                                          $index++)
  28.                                    {
  29.                                                        print(ora_getcolumn($cursor,$index));
  30.              
  31.                                }
  32.                              }
  33.                                  print("Rows: " );
  34.                                  print(ora_numrows($cursor));
  35.                   }
  36.         }  /* fin du if not ora parse */
  37.            
  38.               // Ferme le curseur Oracle  
  39.               Ora_Close($cursor);
  40.               print("Fermeture du curseur effectuee<BR>\n" );
  41.     } /* fin du if $cursor etc  */
  42.       else{
  43.         print("Le curseur n a pas pu etre ouvert!<BR>\n" );
  44.    }
  45.        // Deconnecte du serveur  
  46.       Ora_Logoff($db2);
  47.       print("Deconnexion effectuee<BR>\n" );
  48. /* fin du if($connection   */
  49. ?>
  50. <br>
  51. <?      
  52. echo 'Il y a '.$index.' enregistrement(s) dans la table Article.';
  53. ?>


 
les erreurs:
 
Resource id #3
Il y a 100 enregistrement(s) dans la table Machine.
Warning: Wrong parameter count for odbc_exec() in d:\www\phptest\test select.php on line 23
 
Warning: Ora_Parse failed (ORA-01009: Paramètre obligatoire absent -- while processing OCI function OPARSE) in d:\www\phptest\test select.php on line 24
 
Warning: Ora_Exec failed (ORA-01003: Aucune instruction analysée -- while processing OCI function OEXEC/OEXN) in d:\www\phptest\test select.php on line 26
Fermeture du curseur effectuee
Deconnexion effectuee
 
 
Notice: Undefined variable: index in d:\www\phptest\test select.php on line 59
Il y a enregistrement(s) dans la table Article.
 
 
 
Je ne sait pas si la methode que j'utilise est bonne...
Si quelqu'un peut m'aider...


Message édité par emploze le 14-06-2007 à 13:59:45
mood
Publicité
Posté le 14-06-2007 à 10:33:48  profilanswer
 

n°1574832
omega2
Posté le 14-06-2007 à 12:01:56  profilanswer
 

Vu que c'est du php, t'aurais pu/du poster la question dans php.  
 
En dehors de ça, tes lignes 23, 24, 26 et 59, elles correspondent à quelles lignes de ce que tu nous montres?
 
Côté erreurs, elles sont pourtant parlantes :  
"Warning: Wrong parameter count for odbc_exec()" mauvais nombre de paramettres. petit tour dans la doc php ( http://fr3.php.net/manual/fr/function.odbc-exec.php ) et que vois je :

Citation :

resource odbc_exec ( resource connection_id, string query_string [, int flags] )

Deux paramettres obliguatoires (il est où l'identifiant de conection dans ton code?
 
Pour le Ora_Parse et Ora_Exec, là, je laisse faire les pro d'oracle, mais déjà, demande toi ce que contient la variable que tu leur fournis. Le probléme peut venir de là.
 
PS : Ora_Parse te retourne un bouléen. Pas besoin de faire un "if((Ora_Parse($cursor, $req2)) >= 0)" qui en plus est une comparaison fausse, alors qu'un simple "if (Ora_Parse($cursor, $req2))" suffit emplement. Au fait, entre nous, qui t'as dit que ora_parse retourne un nombre inférieur à zéro en cas d'erreur? Elle retourne TRUE ou FALSE ce dernier pouvant être converti en la valeur 0, valeur qui n'a rien de négatif, t'en conviendra.
 
PS2 : Il y a beaucoup plus de conaisseurs dans la section php que dans la section "divers", donc déplace ta discution si tu veux des corrections rapide.
 
PS3 : ne laisse jamais trainer de mot de passe en clair. C'est peut être des serveurs qui ne sont accéssible qu'en local mais on ne sait jamais. Mieux vaut limiter les risques.


Message édité par omega2 le 14-06-2007 à 12:04:29

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

  Connexion a plusieur base de données

 

Sujets relatifs
Ouvrir et sauvegarder une base access en vbExporter données vers Excel
Mise en page pour base de données de fichiersDonnées d'un formulaire absentes dans une table
Cas spécifique de récupération de données d'un formQuestions de "base" ambigues sur la programmation objet
Connexion a MS SQL à partir du poste linuxRécupérer des données avec un nbre de caractères spécifiques
.... 
Plus de sujets relatifs à : Connexion a plusieur base de données


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