IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

fonction indéfinie oci_connect sous EasyPHP etWampServer 2


Sujet :

PHP & Base de données

  1. #1
    Membre habitué Avatar de mamiberkof
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    290
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Maroc

    Informations forums :
    Inscription : Avril 2005
    Messages : 290
    Points : 155
    Points
    155
    Par défaut fonction indéfinie oci_connect sous EasyPHP etWampServer 2
    Bonjour,

    Quand je veux exécuter un script contenant une connexion à Oracle, j'ai le message :
    Fatal error: Call to undefined function oci_connect() in C:\wamp\www\transfert.php on line 5
    j'ai bien installé l'extension php_oci8.dll mais malgré ça, il ne connait pas la fonction.

    J'ai cherché dans le forum avant de poster mais rien ne règle mon problème, j'ai aussi essayé easyphp 1..8 avec php5 mais rien .

    Merci d'avance
    ¤-------------------------------------------------------------------
    |لا تبكي يا بُـنية، فإن الله مانع أباك...
    | Trd :"Ne pleure pas ma petite fille, Dieu protége ton père" Le prophet Mohammed.
    | L'effet developpez.com : ->geek
    | It is man's ability to remember that sets us apart. We are the only species concerned with the past. Our memories give us voice. They bear witness to history so that others |might learn. So they might celebrate our triumphs and be warned of our failures.
    ¤-------------------------------------------------------------------

  2. #2
    Membre régulier Avatar de bsidy1
    Profil pro
    INFORMATICIEN
    Inscrit en
    Décembre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : INFORMATICIEN

    Informations forums :
    Inscription : Décembre 2006
    Messages : 127
    Points : 72
    Points
    72
    Par défaut fonction indéfinie oci_connect sous EasyPHP etWampServer 2
    essaye de voir si reellement ton script s'execute sur le serveur et que tu ne l'appelle pas directement.
    Si cela s'execute sans passer par le serveur wamp pas espoir que ça soit parser
    Ecouter, observer avant de parler c'est être responsable

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 19
    Points : 20
    Points
    20
    Par défaut
    à tout hasard, installe aussi l'extension php_oracle.dll

    Que mets tu dans les paramètres de ta fonction oci_connect? je te pose la question, car j'avais eu le même problème et c'était juste que j'avais mal mis mes paramètres.

    Est ce que la connection fonctionnait déjà avant ?

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    35
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2008
    Messages : 35
    Points : 33
    Points
    33
    Par défaut
    Salut!
    essaie ce bout de code dans ton script et dis nous ce qui se passe
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $conn = oci_connect("tonlogin", "tonmotdepasse","option:lenomduschema");
    if (!$conn) {
      $e = oci_error(); 
      echo htmlentities($e['message']);
    }

  5. #5
    Membre régulier Avatar de bsidy1
    Profil pro
    INFORMATICIEN
    Inscrit en
    Décembre 2006
    Messages
    127
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : INFORMATICIEN

    Informations forums :
    Inscription : Décembre 2006
    Messages : 127
    Points : 72
    Points
    72
    Par défaut
    salut mamiberkof
    essaye de voir si tu n'as desinstallé oracle et que ton tnsname est bien sur ce chemin là
    -C:\oracle\product\10.2.0\db_1\NETWORK\ADMIN\tnsname
    et non un autre ou db_1 n'est pas à un mais plutot à un nombre superieur à 1
    exemple
    -C:\oracle\product\10.2.0\db_3\NETWORK\ADMIN
    Ecouter, observer avant de parler c'est être responsable

  6. #6
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Variables d'environnement
    Je suppose que tu utilises Oracle InstantClient pour tes requètes Oracle.

    Il faut donc vérifier que les variables d'environnement sont bien positionnées.
    Je n'ai plus la liste en tête mais en allant sur le site d'oracle sur la page pour instantclient, de mémoire ils citent les variables d'environnement à positionner.

    J'avais la même erreur donc je pense que ceci règlera ton problème.

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    Bonjour,
    j'ai le meme probleme
    j'utilise le wampserver
    php : 5.2.9
    apache 2.2.11

    oracle 9i

    l'orsque j'utilise l'exemple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php
    $c1 = ora_logon("hr","hr");
    if ($c1){ 
    print "La connexion a été effectuée\n"; 
    }else{ 
    print "vous n'êtes pas connecté\n"; 
    } 
    ?>
    le message d'erreur est :
    Warning: ora_logon() [function.ora-logon]: Oracle: Connection Failed: ORA-12203: TNS : connexion à la destination impossible in C:\wamp\www\EXO01\conn.php on line 2
    vous n'êtes pas connecté
    et quand j'utilise
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    $c1 = oci_connect("hr","hr");
    .......
     
    ?>
    le message d'erreur est :
    Fatal error: Call to undefined function oci_connect() in C:\wamp\www\EXO01\conn.php on line 2
    je ne sais pas quelle version de php et apache compatible avec Oracle 9i

    merci.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    67
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 67
    Points : 75
    Points
    75
    Par défaut
    Avec EasyPHP, utilisez ocilogon() ou ora_logon() à la place de oci_connect().

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    bonjour,

    est-ce que tu pourrais m'expliquer les démarches que tu as suivies pour faire fonctionner PHP et oracle, stp?

    Je sens que je vais m'arracher les cheveux

    Voici ce que j'ai:
    -EasyPHP 3.0
    Apache 2.2.11
    PHP 5.2.8
    - une base de données Oracle 8i mais sur un serveur distant
    - j'ai téléchargé le client Oracle Instant v10.1.0.5
    - j'ai décommenté dans easyPHP/conf_files/php.ini les extensions php_oci8.dll et php_oracle.dll (les DLL sont bien présentes dans le répertoire ext de PHP)
    - dans les variables d'environnement, j'ai mis dans PATH le répertoire dans lequel se trouve le client Oracle Instant v10.1.0.5. (Dans ce répertoire il y a le oci.dll)

    Au niveau du code pour me connecter je fais ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $db_user = "alim";
    $db_pass = "alim";
    $db_name = "mybd";
     
    //*** test de la méthode pour se connecter à Oracle et PHP via easyPHP
    //if (!(OCILogon($db_user, $db_pass, $db_name)))
    //if (!(oci_connect($db_user, $db_pass, $db_name))) // ne fonctionne pas avec easyPHP
    if (!(ORA_logon($db_user, $db_pass, $db_name)))
    //***
    Quand j'exécute le code, j'ai ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Warning: ora_logon() [function.ora-logon]: Oracle: Connection Failed: ORA-12560: TNS:protocol adapter error in C:\Program Files\EasyPHP 3.0\www\infoc_dev\dev\test_connect.php on line 13
    J'ai fouillé sur le net, dans le forum ...
    Je ne comprends pas pourquoi ça ne fonctionne pas.

    Pour info, dans mes recherches, j'ai vu qu'on parle de des variables suivantes:
    ORACLE_HOME
    ORACLE_SID
    LD_PRELOAD
    LD_LIBRARY_PATH
    NLS_LANG

    Je n'ai rien touché, rien initialisé, rien ajouté ou supprimé (je ne sais même pas où ils se trouvent ou bien devraient se trouver)

    Concernant la base de données Oracle 8i, je me demande comment cela se passe pour se connecter à cette bdd située sur un serveur distant. Au niveau du code je n'ai que l'initialisation du user, pwd et bdd_name. Du coup je ne suis pas sur que cela suffise pour se connecter au serveur. Ai-je tort?

    Voilà j'ai essayé de détailler au mieux mon problème, j'espère que j'aurai une réponse constructive.

    Merci d'avance.

    dreamcat1

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    23
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 23
    Points : 14
    Points
    14
    Par défaut
    Bon...

    ça marche pour moi.

    J'ai tout d'abord retiré l'install du client oracle 10 (instant client).
    Ensuite j'ai installé ce même client mais avec la prise en charge réseau (car la base de donnée est située sur un serveur distant)

    Et il a fallu que je crée un TNSNAMES.ora et un SQLNET.ora qui doivent normalement être sur [répertoire_oracle_installé]\NETWORK\ADMIN\

    Dans le tnsnames, il a fallu que j'y inscrive les informations de mon instance Oracle (nom de l'instance, protocole, hôte, port).

    Pas besoin de toucher au PATH dans les variables d'environnement. L'install du client oracle me l'a fait automatiquement.

    Sur WampServer, retirer le ";" pour extension=php_oci8.dll
    Redémarrer WampServer.

    Constater les changements en lançant phpinfo() vous verrez apparaître une rubrique oci8.

    Dans le code, utiliser oci_connect().

    Et là ... kiffer !!! ça marche.

    J'espère n'avoir pas oublié une ou plusieurs étapes. En espérant avoir pu aider les gens.

    A+

Discussions similaires

  1. [Débutant] Fonction indéfinie sous MATLAB
    Par fendermax14 dans le forum MATLAB
    Réponses: 1
    Dernier message: 17/11/2012, 14h08
  2. [EasyPHP] Pas de fonction importer sous phpMyAdmin sous EasyPHP 1.8 ??
    Par romca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/10/2006, 07h31
  3. Problème fonction et trigger sous 7.2
    Par anoukhan dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 22/06/2005, 22h53
  4. Fonctions template+friend sous VC7
    Par patapetz dans le forum MFC
    Réponses: 12
    Dernier message: 24/09/2004, 11h16
  5. [Mysql] Connection delphi à une bdd sous easyphp...
    Par pataluc dans le forum Bases de données
    Réponses: 2
    Dernier message: 14/06/2004, 09h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo