Connexion a plusieur base de données

Connexion a plusieur base de données - PHP - Programmation

Marsh Posté le 14-06-2007 à 10:33:48    

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
Reply

Marsh Posté le 14-06-2007 à 10:33:48   

Reply

Marsh Posté le 14-06-2007 à 12:01:56    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed