Fatal error: Call to undefined function oci_connect()

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Fatal error: Call to undefined function oci_connect()

Re: Fatal error: Call to undefined function oci_connect()

par Gelasse » 26 mai 2015, 16:38

Bonjour j'ai actuellement la mémé erreur.

Quelqu'un saurait m'aider svp ?

Merci

Re:

par mt1rst » 19 mai 2015, 15:21

J'ai changé en dur dans le php.ini de wamp la ligne ;extension=php_oci8.dll (j'ai retiré le point-virgule)

et maintenant quand je démarre wamp ca me met :

Code : Tout sélectionner

Le point d'entrée de procédure OCILobRead2 est introuvable dans la bibliothèque de liaisons dynamique OCI.Dll.
C'est pas fait pour aider :cry:

Merci à ceux qui pourront m'aider.

Korg
Bonjour, je te suggère de réinstaller soit wamp ou xampp ensuite de passer sur le site d'oracle pour télécharger "instantclient-basic-windows.x64-12.1.0.2.0.zip" selon ta plateforme.
décompresser le contenu du zip directement dans le répertoire du serveur web "C:\xampp ou wamp\apache\bin".
cette procédure est a suivre dans le cas d'une architecture 3/3 c à dire
- srv base de données
- srv web apache
- client

par Korg » 14 mars 2008, 16:50

PUTAIN CA Y EST, YOU DID IT !!!!!!!!!!!!!!!!! (désolé pour le "putain" mais depuis le temps :D)
entre les variables d'environnement elles ne se définissent pas toutes seules à l'install normalement ? et ce fichu nom de base xe ^^

1000 MERCIS

Korg

par Ryle » 14 mars 2008, 16:37

Cela veut dire qu’il trouve bien la librairie, le problème maintenant n’est plus que celui de la connexion.

Normalement, si tu as défini la variable d’environnement ORACLE_SID avec le nom de ta base (ex : XE si tu utilise l’eXpress Edition), tu ne devrais pas voir d’erreur.

Sinon, sans rentrer dans le détail de ce qu’est le TNS, tu dois avoir un fichier de configuration nommé tnsnames.ora (qui doit se trouver dans ton dossier ORACLE_HOME/network/admin) décrivant les différentes bases accessibles.

Le plus simple est sans doute d’utiliser cette syntaxe directement dans ton appel à oci_connect() pour lui indiquer quelle base utiliser :

Code : Tout sélectionner

$cnx = oci_connect( "<username>", "<password>", "(DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(Host = <serveur>)(Port = <port>)) ) (CONNECT_DATA = (SERVICE_NAME = <sid>) ) )");
En remplaçant les valeurs qui vont bien (le port par défaut doit être 1521, le serveur localhost, et le sid, si tu utilise XE est... XE :)

par Korg » 14 mars 2008, 15:48

enfin du mieux !!! même si ca marche pas :?

Je ne connais rien à oracle et son install...J'ai déclaré la variable d'environnement ORACLE_HOME, c'est pas automatique normalement ? Bref, toujours est-il que maintenant j'ai ce message :

Code : Tout sélectionner

Warning: oci_connect() [function.oci-connect]: ORA-12154: TNS : l'identificateur de connexion indiqué n'a pas pu être résolu in C:\wamp\www\monsite\index.php on line 12 non
Une idée ? ca approche merci Ryle :)

Korg

par Ryle » 14 mars 2008, 15:19

En principe, au niveau du php.ini, il te faut donc décommenter la ligne "extension=php_oci8.dll" et vérifier que le chemin spécifié dans "extension_dir" pointe vers le bon dossier.

Si tout est correcte, regarde au démarrage d'apache s'il n'y a pas de message d'erreur (ça te donnera toujours plus d'informations sur le problème rencontré s'il n'arrive pas à trouver ou à charger la librairie :))

Vérifie également que la variable d'environnement ORACLE_HOME est correctement définie (pointe bien vers le dossier d'oracle). A préciser également la variable ORACLE_SID contenant le nom de ta base (c'est pas obligatoire ceci dit, tu peux donner la description complète ((DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) ...) lors de l'appel à la fonction (dans $db) :))

par Korg » 14 mars 2008, 13:29

Merci Ryle tu es ma lueur d'espoir... :)

Je te résume exactement ce que j'ai fait :
- installation d'oracle 9 puis 10 ultérieurement
- installation d'easy php ou wamp
Pour éviter le conflit du localhost j'ai changé le port d'oracle
j'ai décommenté pour l'activer, dans le php.ini, l'extention oci8.dll
J'ai créé une page bidon avec ce code pour tester la connexion
<?php
$connex = oci_connect('monlogin', 'monmotdepasse', 'matable');
if ($connex){
print "oui";
}else{
print "non";
}
?>
J'ai redémarré le tout et le message d'erreur s'affiche inexorablement :

Code : Tout sélectionner

Fatal error: Call to undefined function oci_connect() in C:\wamp\www\monsite\index.php
et aussi par wamp

Code : Tout sélectionner

Le point d'entrée de procédure OCILobRead2 est introuvable dans la bibliothèque de liaisons dynamique OCI.Dll.
Ai-je loupé une étape ? Faut-il recompiler un truc ? Déclarer des variables ou autre ? Déplacer un fichier ?

Korg

Ps : j'arrive à me connecter à ma base oracle via une console MSDOS

par Ryle » 14 mars 2008, 12:46

La version 10g n'est pas une nécessité, les fonctions oci* marchaient déjà très bien avec la version 8i d'oracle (m'enfin ça fait pas de mal d'être à jour, et puisque la version XE est gratuite, on aurait tort de s'en priver :))

Je n'ai pas essayé avec wamp, en revanche je n'ai eu aucun soucis avec easyphp pour me connecter à une base oracle de la 1.6 à la version 2... au pire et pour éviter de désinstaller/réinstaller encore une fois, récupère les dll présentes dans easyphp pour les coller à la place de celle de wamp (tu verras déjà s'il n'y a pas une différence au niveau de la taille)

Par ailleurs, donne toujours les messages d'erreur complet que tu rencontres, même si c'est toujours le même (au moins comme ça, on sait que c'est toujours le même), parce que "oci8 dll je ne sais pas quoi", ça aide pas vraiment ;)

par Korg » 14 mars 2008, 12:25

re bonjour,

J'ai installé la v10 et ca ne veut toujours pas. Qu'il y a t-il à faire concrètement ? J'avoue que je désespère là...

Bien à vous

Korg

par Korg » 13 mars 2008, 10:55

Bonjour,

Apparemment il faudrait la v10 d'oracle ??? #-o

par Cyrano » 12 mars 2008, 13:39

Faudrait fouiller la doc. La je n'ai pas trop le temps, j'essayerai de trouver quelques minutes dans l'après-midi, sans garantie malheureusement.

Mais n'oublie pas : :google: est ton ami et un copier/coller de message intégral dans une recherche a souvent des résultats intéressants.

Bon courage.

par Korg » 12 mars 2008, 13:18

Re Cyrano et encore merci, mais j'ai déjà essayé cette solution dans le .ini en décommentant l'un puis l'autre puis les 2 mais toujours rien et j'ai bien ces dll dans mon dossier : C:\wamp\bin\php\php5.2.5\ext.

Que faire ? Je ne pensais pas que ca serait si complexe à mettre en oeuvre :(

Korg

par Cyrano » 12 mars 2008, 12:56

Je me souviens plus trop, mais il me semble qu'il existe deux extensions pour Oracle, oci et oci8. Si ça ne fonctionne pas avec l'une, teste avec l'autre directement dans le php.ini après avoir bien entendu vérifié la présence de la dll dans le répertoire PHP/ext/.

par Korg » 12 mars 2008, 12:26

J'ai bien essayé de copier la dll du dossier bin d'oracle dans l'apache de wamp en vain...Je ne sais plus à quel saint me vouer.

:agenouille:

par Korg » 12 mars 2008, 10:32

Merci Cyrano je me sens un peu moins seul :)

C'est ma machine locale sur laquelle j'utilise oracle et wamp. Je dois juste créer une appli en php qui attaquerait des bases oracles mais je me heurte à ce problème de "oci8 dll je ne sais pas" quoi :/
J'ai réussi à palier au problème du localhost en changeant le port donc maintenant 127.0.0.1 me renvoie à wamp mais le paramétrage pour qu'oracle marche me pose de sérieuses difficultés :cry:

Korg