J'ai eu cette erreur.
Fatal error: Call to undefined function oci_connect()
$conn = oci_connect('localhost', 'username', 'password') or die(could not connect:'.oci_error)
c'est le code.
C'est l'erreur que j'ai eue.
Fatal error: Call to undefined function oci_connect() in C:\xampp\htdocs\org\org\php\myphp.php on line 51
J'ai vérifié les fichiers PHP DLL dans le dossier ext.
Quelqu'un aider sur cette question merci d'avance.
Je viens de passer trois jours entiers à lutter contre ce problème.
J'utilisais ma connexion Oracle sous Windows 7 et aucun problème. La semaine dernière, je viens d’obtenir un nouvel ordinateur avec Windows 8. Installez XAMPP 1.8.2. Chaque application PHP/MySQL sur ce serveur fonctionne bien. Le problème est venu lorsque je tente de connecter mes applications php à Oracle DB.
Appel de la fonction non définie oci_pconnect ()
Et quand je lance/arrête Apache avec les modifications, un étrange "Warning" sur "PHP Startup" va dans LOG avec "Warning PHP: PHP Startup: in Unknown on line 0"
J'ai tout fait (non commenté php_oci8.dll et php_oci8_11g.dll, copiez oci.dll dans le répertoire/ext, près de/Apache et RIEN cela fonctionne. Téléchargez chaque version de Instant Client et RIEN.
Dieu est venu dans mon aide. Lorsque je télécharge Oracle Instant Client 32 bits, tout fonctionne correctement. phpinfo () affiche les informations sur oci8 et mon application fonctionne correctement.
Alors, NE TENTEZ JAMAIS QUE VOTRE VERSION SOUS WINDOWS SOIT x64. Les liens sont entre XAMPP et Oracle Instant Client.
Etapes simples
Vous devez activer l'extension ci-dessous dans votre php.ini
;extension=php_oci8.dll
;extension=php_oci8_11.g.dll
en supprimant le ";" de sorte que les résultats seront ci-dessous:
extension=php_oci8.dll
extension=php_oci8_11.g.dll
Télécharger Oracle Instant Client: - De préférence 32 bits. 32 bits fonctionnera également sur 64 bits. Vous pouvez simplement google: télécharger le client instantané Oracle 32 bits. Utilisez la version 11 du client car extension=php_oci8_11.g.dll
ne fonctionnera pas avec 12. Décompressez le package dans un emplacement tel que C:\Oracle\instantclient_11_2
.
Enfin, modifiez la variable PATH
du système avec l'emplacement final, sous les variables système et non les variables utilisateur.
Ensuite, vous devez redémarrer le système pour que les modifications de PATH
se propagent complètement.
Si vous ne faites que redémarrer XAMPP/WAMP sans redémarrer la machine, les fichiers DLL du client (i.e. OCL.dll) ne seront pas chargés (ni trouvés) Par l'extension php_oci8_11g.dll
de PHP.
Choses à faire pour que
Téléchargez le client Oracle à partir de Téléchargez à partir d'ici
Collez-le dans C:\instantclient_12_1
Vous devez activer cette extension dans votre fichier php.ini. Voir Installation Oracle :
extension=oci8.so
J'ai installé WAMPServer 2.5 (32 bits) et j'ai également rencontré une erreur oci_connect. J'avais également le client Oracle 11g (32 bits) installé. La solution courante que j'ai lue dans d'autres publications consistait à modifier le fichier php.ini de votre répertoire C:\wamp\bin\php\php5.5.12, mais cela n'a jamais fonctionné pour moi. J'ai peut-être mal compris, mais j'ai constaté que si vous modifiez le fichier php.ini dans le répertoire C:\wamp\bin\Apache\apache2.4.9, vous obtiendrez les résultats souhaités. La seule chose que j'ai modifiée dans le fichier php.ini d'Apache était de supprimer le point-virgule en extension=php_oci8_11g.dll
afin de l'activer. J'ai ensuite redémarré tous les services et cela fonctionne maintenant! J'espère que cela fonctionne pour vous.
essaye ça
dans le fichier php.ini, décommentez cette
extension_dir = "./"
"supprimer le point-virgule"
Bon, les gars.
First, utilisez
<?php
phpinfo();
?>
et déterminez votre version PHP (située tout en haut, par exemple 7.0.xxx) ainsi que votre architecture de version PHP: x64 ou x86 et également, Thread Safe or Not Thrread Coffre-fort (situé dans le premier tableau en tant que "Sécurité du fil".) "Désactivé" signifie évidemment "Pas de sécurité du fil".
Il est absolument essentiel que les trois logiciels suivants soient nécessaires:
Si l'un des éléments suivants concerne une architecture différente, version non Thread Safe/Thread Safe, numéro de version majeure PHP ou version de la base de données, des erreurs se produiront:
1. PHP for Windows
2. OCI8 PECL Drivers for PHP (https://pecl.php.net/package/oci8)
3. Oracle Instant Client
N'oubliez pas: si vous vous connectez à une instance Oracle 11g, vous avez besoin d'un pilote 11g.
Second, installez le bon PHP, le pilote OCI8 PECL et le client instantané.
J'ai choisi:
d:\php\ for php
d:\oci\ for instant client
unzip the contents of the OCI8 PECL Driver into d:\php\ext\
Troisième, modifiez d:\php\php.ini en suivant les instructions données par Oracle:
1. set the extension directory
2. set only one of the following:
a. for 11g drivers, use extension=php_oci8_11g.dll
b. for 12c drivers, use extension=php_oci8_12c.dll
c. for other Oracle DB drivers, use the correct Oracle extension.
Quatrième étape: Ajoutez d:\oci\(ou l’emplacement d’emplacement instantané de votre client) à votre système PATH.
Cinquième: redémarrez votre PC.
Sixième, à l'invite de commande, tapez "où oci *" et vérifiez que votre version du chemin d'installation Instant Client de oci.dll est présente.
Septième, allez à d:\php\et tapez "php -m" et vous devriez voir OCI8 dans la liste.
Si vous ne voyez pas OCI8 dans la liste des modules après avoir tapé "php -m", ouvrez d:\php\errorlog.txt
Si vous voyez quelque chose comme:
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_oci8_11g.dll' - %1 is not a valid Win32 application.
alors le client instantané ou le téléchargement de votre pilote PECL n’est pas de la même architecture que votre version PHP.
Si vous voyez quelque chose comme:
PHP Warning: PHP Startup: Unable to load dynamic library 'ext\php_oci8_12c.dll' - The specified procedure could not be found.
vous utilisez alors le mauvais pilote OCI8 PECL pour votre version de client instantané.
J'espère que cela t'aides.
J'ai installé Wamp et je m'attendais à ce que tout fonctionne correctement. Pas si . J'ai 2 clients Oracle sur ma machine Windows x64 (instantané et complet). Si quelqu'un d'autre a une configuration similaire, l'astuce consiste à s'assurer que le client instantané est (a) dans votre variable d'environnement Path et (b) précède le client complet dans la variable Path. Il existe une très brève section sur Windows ici mais elle a donné la réponse.
Eh bien, si quelqu'un est confronté à ce problème à un moment de sa vie, voici mon histoire:
XAMPP 32bits avec PHP 7.1.6
PS: Deux jours de ma vie pour y arriver.
À votre santé
J'ai eu le même problème, la solution sur cette page m'a aidé, il est causé par l'utilisation de fichiers oci ddl incompatibles.
J'espère que ça aide.