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 :

Connexion à une base oracle


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2007
    Messages
    35
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 35
    Par défaut Connexion à une base oracle
    bsr
    aprés la configuration pour permettre la connexion
    j'oubtiens le message suivant "le point d'entrée de procedure OCILobRead2 est introvable dans la bibliothèque de liaisons dynamique OCI.dll"
    Moi j'utilise PHP5 avec le serveur EasyPhp2.0 beta et oracle 9i
    que dois-je faire? help

  2. #2
    Membre confirmé
    Profil pro
    Responsable informatique
    Inscrit en
    Juillet 2003
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Responsable informatique

    Informations forums :
    Inscription : Juillet 2003
    Messages : 142
    Par défaut
    Bonjour,

    La dernière fois que j'ai voulu mettre à jour PHP j'ai eu la même erreur et je n'ai pas trouvé de solution, je compte essayer cette semaine de mettre à jour php (et je vais donc surement rencontrer de nouveau le pb) donc si tu as trouvé une solution ... je suis preneur

  3. #3
    Membre confirmé Avatar de docr1
    Profil pro
    Inscrit en
    Février 2007
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Février 2007
    Messages : 74
    Par défaut
    J'ai eu le meme probleme que vous.
    La solution la plus simple est de passer en php 4 car les librairie de php5 ne sont pas compatible avec les version des client inferieur a 10g.
    ( c'est ce que j'ai fait et ca marche nickel )

    Pour php5, j'ai lu qu'il s'était basé sur Oracle 10g pour créer les fonctions.

    La seconde solution est d'installer le client oracle 10g.

  4. #4
    Membre Expert
    Avatar de Lung
    Profil pro
    Analyste-programmeur
    Inscrit en
    Mai 2002
    Messages
    2 704
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Analyste-programmeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 704
    Par défaut
    Citation Envoyé par docr1
    J'ai eu le meme probleme que vous.
    La solution la plus simple est de passer en php 4 car les librairie de php5 ne sont pas compatible avec les version des client inferieur a 10g.
    ( c'est ce que j'ai fait et ca marche nickel )

    Pour php5, j'ai lu qu'il s'était basé sur Oracle 10g pour créer les fonctions.

    La seconde solution est d'installer le client oracle 10g.
    Il suffit d'installer le client Oracle 10g, et c'est tout ?
    Il n'y a rien d'autre à faire ?

    L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai. :bug: ___ "http://club.developpez.com/regles/#LIII-A"Écrivez dans un français correct !!

    C++Builder 5 - Delphi 6#2 Entreprise - Delphi 2007 Entreprise - Delphi 2010 Architecte - Delphi XE Entreprise - Delphi XE7 Entreprise - Delphi 10 Entreprise - Delphi 10.4.2 Entreprise - Delphi 11.3 Entreprise - Visual studio 2022
    OpenGL 2.1 - Oracle 10g - Paradox - Interbase (XE) - PostgreSQL (15.7)

  5. #5
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Alors je confirme, on peut utiliser php5 avec une oracle9i. (Je peux même affirmer qu'on peut utiliser une 5.0, 5.1 et 5.2.1, version que j'ai testée)

    Pour ton problème, avant t'attaquer un champ "LOB" (qui sont une abomination sous oracle, vive les "text" et les "blob" mysql \o/) est-ce que tu peux déjà établir une connection avec ta base ?
    Si oui, est-ce que tu peux aller lire une table simple ? (genre avec seulement des number et des varchar2 dedans ?)

    Si tu ne peux pas te connecter du tout, ca peut venir du fait que dans ton install, il ne trouve pas le oci.dll (as-tu validé dans easy php le fait que tu veux utiliser le module oci ?), ou qu'il en trouve une mauvaise version (dans ce cas, tu peux tenter de remplacer le oci.dll, par une "vieille version" ou une plus récente si tu trouve).
    Ca peut venir de ton install d'oracle, avec les histoires de tnsname a configurer (va sur le forum Oracle, ils sauront te répondre mieux que moi sur comment il faut faire), de client a installer, etc...

    Et le jour ou tu voudras faire un insert avec un CLOB dans un de tes champs, tu regretteras vraiment mysql, mais ceci est une autre histoire.

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 65
    Par défaut
    pour ma part je n'y arrive pas non plus! j'en peux plus d'essayer
    voici mon environnement :
    • OS : Windows
    • Oracle client : 9.2
    • PHP 5.2
    • Apache 2.0 (mode CGI)


    mon php.ini :
    extension_dir = "c:/php5.2/ext/"
    safe_mode_include_dir ="C:\php5.2\PEAR;C:\php5.2\PEAR\DB"
    safe_mode_protected_env_vars = LD_LIBRARY_PATH
    extension=php_mbstring.dll
    extension=php_bz2.dll
    extension=php_dba.dll
    extension=php_dbase.dll
    extension=php_gd2.dll
    extension=php_oci8.dll
    ;extension=php_oracle.dll
    ...(tout le reste est commenté)
    variables systèmes (au cas où mais c'est dommage qu'on ne puisse pas les configurer dans le fichier php.ini)

    path = c:\oracle;c:\oracle\bin;c:\oracle\lib;c:\oracle\lib\oci\;c:\php5.2\ext;c:\WINDOWS\systeme32

    ORACLE_HOME=c:\oracle

    LD_LIBRARY_PATH=c:\oracle\lib

    NLSLANG="FRENCH_FRANCE.WE8ISO8859P15" (je ne sais pas si ça marche je l'aurais plutot mis en clé de registre)

    TNS_ADMIN=c:\oracle\network\ADMIN\
    --> mon tnsnames.ora est ok je me connecte via plsql+
    --> je viens de réinstaller le client 9.2 (j'hésite a passé en 10g à moins que ce soit la solution)

    J'ai dans mon répertoire d'extension PHP :
    php_oci8.dll
    oci.dll (copié du client oracle au cas ou : j'ai remarqué que l'erreur n'était pas la même)
    oci32.dll (copié du client oracle )


    bon au début j'ai cru que la dll n'était pas bonne je l'ai testée avec regsvr32
    voici le résultat :
    LoadLibrary (php_oci8.dll) a échoué - la procédure spécifiée est introuvable
    Il semblerai qu'en fait cette dll a des dépendances
    après une recherche sur le net j'ai compris qu'il y avait besoin d'une référence aux librairies du client oracle (les variables systèmes ne suffiraient pas?)

    j'ai également testé la oci.dll (celle du client oracle) voici le message :
    oci.dll a été chargée mais le point d'entrée DllregisterServer est introuvable ce fichier ne peut pas être enregistré
    Si j'ai bien compris c'est qu'il n'arrive pas a référencée la dll dans la base de registre ( a vérifier)

    J'ai vu ensuite plusieurs sites qui disaient que php_oci8.dll est compatible qu'avec une version oracle supérieur à 10 mais ça n'est pas logique par rapport à la compatibilité ascendante...

    Ensuite
    J'ai essayé via PEAR DB mais il semble que ce soit le même problème
    j'ai récupérer les logs lors de la connexion et il m'affiche
    DB Error: extension not found
    la encore on parle d'extension - j'ai regardé dans le fichier oci.php de DB et il fait un truc du genre
    DB::loadModule('oci8');
    mais je me demande bien comment il charge ce module oci8 sachant que je n'ai aucune dll correspondante.

    Ha oui dernière information (oui je sais je blablate )
    le module OCI n'est bien sur jamais chargé d'après phpinfo()

    Je ne peux pas revenir a des versions antérieures de php (d'ailleurs je vois pas l'intéret si il y a une nouvelle version c'est bien qu'elle est sensée être plus avantageuse...est ce qu'ils ont testés au moins les dll qu'ils fournissent?! )

    ma question est donc comment fait-on? quelqu'un a t-il réussi ? qu'il décrive son environnement et ce qu'il a fait - je lui en rendrai grace!

Discussions similaires

  1. Réponses: 9
    Dernier message: 17/11/2006, 11h08
  2. [DEBUTANT] Connexion à une base oracle dans eclipse
    Par marwaza22 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 10/07/2006, 17h25
  3. [Oracle] Problème de connexion à une base Oracle
    Par Gigi31 dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 30/06/2006, 17h49
  4. Réponses: 4
    Dernier message: 24/02/2006, 10h48
  5. Réponses: 4
    Dernier message: 02/01/2006, 16h58

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