J'ai fait exactement le même exercice mais pour le SGBD "FireBird".Citation
Mafate79
Lorsque je regarde les extensions PHP activées via le menu de WampServer, php_pdo_oci est coché. Pourtant, lorsque je regarde les drivers PDO disponibles via phpinfo(), le driver oci n'apparaît pas.
extension = php_pdo_firebird.dll
$nom_du_serveur = "firebird:dbname=localhost:F:/Wamp/bin/firebird/courant/examples/empbuild/employee.fdb"; $nom_utilisateur = "sysdba"; $mot_de_passe = "masterkey"; $options = array(PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION);
<?php try { return new PDO('oci:dbname=test', 'test', 'test'); } catch(PDOException $e) { die('Erreur : ' . $e->getMessage()); } ?>
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:635)
could not find driver
01/05/2014 09:50 415 744 openssl.exe 01/05/2014 09:50 217 600 pcre.dll 21/06/2014 18:15 <SYMLINK> php.ini [J:/wamp/bin/php/php5.5.13/phpForApa che.ini] 21/06/2014 18:15 <SYMLINK> php5ts.dll [J:/wamp/bin/php/php5.5.13/php5ts .dll] 01/05/2014 09:50 62 976 rotatelogs.exe 21/06/2014 18:15 <SYMLINK> ssleay32.dll [J:/wamp/bin/php/php5.5.13/ssleay32.dllOn peut d'ailleurs voir qu'il y a plusieurs autres liens symboliques (<SYMLINK> )
Mes services sont bien lancer et j'ai accès a ma base de donnée en ligne de commande.Citation
Artemus24
2) s'assurer que le serveur de ORACLE est bien lancé. Voir pour cela les services (services.msc).
C'est le cas de l'anomalie de Skryz974.
<?php $hote = '127.0.0.1'; $port = '1521'; // port par défaut $service = 'XE'; $utilisateur = 'TEST'; $motdepasse = 'test'; $lien_base = "oci:dbname=(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP) (Host = ".$hote ." ) (Port = ".$port." )) ) (CONNECT_DATA = (SERVICE_NAME = ".$service." ) ) )"; try { // connexion à la base Oracle et création de l'objet $connexion = new PDO($lien_base, $utilisateur, $motdepasse); } catch (PDOException $erreur) { echo $erreur->getMessage(); } ?>
XE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = NOM_DE_LA_MACHINE)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = XE) ) )Pour le NOM_DE_LA_MACHINE vous pouvez la mettre comme indiqué dans le fichier pour votre config pdo ou remplacer par 127.0.0.1 comme je l'ai fait ou même mettre localhost.