8791 sujets

Développement web côté serveur, CMS

bonjour à toutes et à tous,
je viens vers vous aujourd'hui car j'ai un soucis depuis quelques jours que je n'arrive pas à régler.
Pour commencer je vous explique mon environnement :
- Serveur de données Oracle sur une machine distante
- serveur apache (wamp) installé en local

Je tente en vain de me connecter à ma base de données oracle via PDO.

$connexion = new DAOoracle("oci:dbname=//172.20.64.17/RefOTST", "guest", "guest");
$conn = new PDO("oci:dbname=//@IP/SID", "usr", "pwd");

Cependant le catch me retourne l'erreur "driver not found".

Les modules oci dans mon php.ini sont activés :
;extension=php_mssql.dll
extension=php_mysql.dll
extension=php_mysqli.dll
extension=php_oci8.dll
;extension=php_oci8_11g.dll
;extension=php_openssl.dll
;extension=php_pdo_firebird.dll
;extension=php_pdo_mssql.dll
extension=php_pdo_mysql.dll
extension=php_pdo_oci.dll
;extension=php_pdo_odbc.dll


La variable d'environnement PATH contient le chemin vers le "instantclient_11_2" et aucun message d'erreur n'apparait lorsque je lance wamp (OCI.dll introuvable si le PATH non renseigné).
Et avec le phpinfo() pdo indique que oci n'est pas chargé (PDO drivers mysql, sqlite )

Je ne comprends pas le "driver not found" sachant que les modules sont activés (mais pas chargés).

Merci de votre aide

[EDIT] après avoir trifouillé wamp j'ai remarqué qu'au clic gauche sur l'icône dans la barre des tâches on pouvait activer les modules pdo_oci et oci8....
Mais du coup une nouvelle erreur apparaît :
SQLSTATE[HY000]: pdo_oci_handle_factory: ORA-12514: TNS:listener does not currently know of service requested in connect descriptor (ext\pdo_oci\oci_driver.c:631) /
Je me penche dessus en l'attente d'une éventuelle réponse de votre part Smiley smile [/EDIT]

[EDIT2]Victoire, étant donné que oracle DB n'est pas installé sur ma machine je n'ai pas certains fichiers requis, du coup apparemment les fichiers se remplacent via le code :
$tns = "  
(DESCRIPTION =
   (ADDRESS_LIST =
     (ADDRESS = (PROTOCOL = TCP)(HOST = @IP)(PORT = port))
   )
   (CONNECT_DATA =
     (SID = monSid)
   )
  )
       ";

ce qui nous donne une chaine de connexion : pdo("oci:dbname=".$tns","usr""pwd");
Désolé pour le post inutile du coup mais peut être que ça aidera quelqu'un un jour[/EDIT]

Modifié par thlem (31 May 2012 - 12:13)