Carnet Wiki

MultiBaseOracle

Version 2 — Août 2005 — Coyote

Interroger une base Oracle grâce au MultiBase

Après plusieurs heures de recherche, de debug, j’ai enfin réussi à interroger une base Oracle.
voici donc le résultat des mes investigations :

Prérequis

Une connexion à Oracle qui fonctionne,

  1. vérifiez que vous avez bien un client oracle installé sur votre machine
  2. que le fichier TNSNAMES.ORA est bien configuré
  3. que l’extension php est installée
    dans le fichier php.ini supprimer le point virgule devant extension
    ;extension=php_oracle.dll

[Erreur...5][Erreur...6]global $connexion ;
$tns = monserveur’ ;
$user = « login@$tns » ;
$pass = ’pass’ ;
$connexion = ora_logon($user, $pass) ;
if ($connexion == FALSE)
echo « 

Erreur d’ouverture de ora_logon

 ».ora_errorcode($connexion).«  : ».ora_error($connexion) ;

[Erreur...8][Erreur...9] // Erreur ? C’est du debug de squelette, ou une erreur du serveur
if ($GLOBALS[’var_mode’] == ’debug’)
boucle_debug_resultat($id, ’’, $q) ;

$q = ereg_replace (strtolower($serveur).« _ », «  », $q) ;
// remplacer le debut des noms de tables pour coller avec les tables réelles du serveur
// permet de ne pas avoir un doublon avec les tables spipecho « < hr>$q<hr > » ;
$mycursor = ora_open ($ connexion ) ;
if ($ mycursor == FALSE )
echo « < h1>Erreur d’ouverture de ora_open</h1 > ». ora_error($mycursor).« ».ora_errorcode($mycursor)."
" ;

ora_parse ($mycursor, $q, 0) ;
if ($mycursor == FALSE)
echo « 

Erreur d’ouverture de ora_parse

 ».ora_error($mycursor).« ».ora_errorcode($mycursor)."
" ;

ora_exec ($mycursor) ;
if ($mycursor == FALSE)
echo « 

Erreur d’ouverture de ora_exec

 ».ora_error($mycursor).« ».ora_errorcode($mycursor)."
" ;

[Erreur...21][Erreur...11][Erreur...12]$articles_key = array(
« PRIMARY KEY » => « article »
) ;

$table_ora[’ora_articles’] =
array(’field’ => &$articles, ’key’ => &$articles_key) ;

[Erreur...15]$GLOBALS[’tables_des_serveurs_sql’][’ORA’]=&$table_ora ;

[Erreur...17][Erreur...18]Remerciements
merci beaucoup à :

  • mortimer
  • Déesse A.
  • Philippe Martin
    pour leur aide...

    N’hésitez pas a participer : ajouter vos commentaires, corrections, etc...

@+ Coyote