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 oracle via PHP


Sujet :

PHP & Base de données

  1. #1
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut Connexion oracle via PHP
    Bonjour à tous,
    Je souhaite me connecté à Oracle via PHP pour récupérer des données d'une base oracle. J'ai essayé plusieurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $connexion = ora_logon("mabase@service","motdepasse");
    ou ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $connect = ocilogon("login","mdp","chaine_hote");
    et dans les deux cas j'ai le même message d'erreur :
    Fatal error: Call to undefined function: ocilogon() in c:\program files\easyphp1-8\www\test.php on line 825

    J'aurai donc voulu savoir si cette erreur était du au fait que php ne comprennes pas les fonctions ocilogon et ora_logon ou si j'ai mal renseigné les différents champs. A votre avis ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  2. #2
    Membre expérimenté
    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
    Points : 1 341
    Points
    1 341
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Call to undefined function: ocilogon()
    C'est clairement que php ne connait pas les fonctions.
    Vérifie avec un phpinfo() que le module oracle est bien installé, et si ce n'est pas le cas (ce qui est plus que probable), il faudra le faire.

    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  3. #3
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    et je fais ca comment ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 233
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 233
    Points : 15 528
    Points
    15 528
    Par défaut
    Citation Envoyé par griese
    et je fais ca comment ?
    donne nous plus de détails sur le serveur : quel est le système d'exploitation ? qui à installé PHP ? c'est pour une utilisation professionnelle ou personnelle ?

  5. #5
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    C'est pour une utilisation professionelle, l'installation a été réalisé par les admins de la boite, c'est sous Linux, une red hat il me semble. Voila les infos
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  6. #6
    Membre expérimenté
    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
    Points : 1 341
    Points
    1 341
    Par défaut
    Soit la table f_xml :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    f_xml : 
     ID NOT NULL NUMBER(21)
     CONTENT CLOB
    Voici un code qui permet d'aller interogger la table. Pense a modifier le $db, en mettant l'ip du serveur d'Oracle et le bon SID.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    <head>
      <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    </head>
    <body>
     
    <?php
     
    $db = '192.168.0.1/oraclesid';
     
     
    $c1 = oci_connect("dev", "dev", $db, 'utf8');
     
    function execute($conn, $sql)
    {
      $stmt = oci_parse($conn, $sql);
      oci_execute($stmt, OCI_DEFAULT);
      echo " - $sql <br />\n";
    }
     
    function commit($conn)
    {
      oci_commit($conn);
      echo "Committed<br />\n";
    }
     
    function rollback($conn)
    {
      oci_rollback($conn);
      echo $conn . "Rollback<br />\n<br />\n";
    }
     
    function select_data($conn, $sql)
    {
      $stmt = oci_parse($conn, $sql);
      //oci_bind_by_name($stmt, ":empno", $empno, 32);
      oci_execute($stmt, OCI_DEFAULT);
      echo "<br />\n----selecting<br />\n";
      echo ("<pre>");
      while (oci_fetch($stmt)) {
       echo "  [" . oci_result($stmt, 1) . "] ----- ";
       //echo "  [" . oci_result($stmt, 2) . "]<br />\n";
       $mavar = oci_result($stmt, 2);
     
       $test = $mavar->read($mavar->size());
       echo ("\n\n\n");
       echo ($test);
     
     
      }
      echo ("</pre>");
      echo "----done<br />\n<br />\n";
    }
     
    echo "Variable d'environement : " . getenv("NLS_LANG") . "<br />\n<br />\n";
     
    $sql = "SELECT * FROM f_xml";
    select_data($c1, $sql);
     
     
    commit($c1);
    //echo '</pre>';
    ?>
    </body>
    Je me sert de ce code pour faire des tests, il n'est pas propre du tout et nécéssitera remaniement avant d'être intégré dans quoique ce soit d'un peu sérieux. Mais il a l'avantage d'aller lire le contenu d'un CLOB ^_^

    --
    Rakken
    Rakken

    Oneira, un monde imaginaire d'Heroic Fantasy.

    Parce que la présomption d'innocence est un des fondements de notre pays et qu'elle doit le rester, dans tous les domaines : http://www.laquadrature.net/

  7. #7
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Merci pour ton aide, je vais essayé ta solution dès que possible et je te tiens au courant.
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  8. #8
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Quelqu'un pourrait il m'expliquer comment installer le module oracle pour PHP ? Cela serait trop aimable de votre part.
    Merci d'avance
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  9. #9
    Membre du Club
    Inscrit en
    Septembre 2004
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 71
    Points : 57
    Points
    57
    Par défaut
    hello,

    je ne vais pas te dire texto comment faire car cela est bien expliqué sur différents site :

    http://php.developpez.com/cours/phporacle/
    http://www.orafaq.com/faqphp.htm

    De plus il faudrait quelques infos supplémentaire. La base de données oracle est sur l'hote http ou bien distante ? Car dans ce cas, l'idéal est d'utiliser l'instant client d'oracle.

    Ensuite il faut compiler php et lui indiquer ou se trouvent les fichiers oracle nécessaire à la compilation du module.

    D'ailleurs tu dis que c'est des admins qui ont installé oracle ... Peut être que c'est eux aussi qui doivent recompiler php ?

    Bye

  10. #10
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Alors voici les infos demandé, la base oracle se trouve sur le meme serveur que l'hote http. Ensuite, c'est a moi de recompiler php, les admins ont juste installé l'OS avec les différents softs dont on a besoin. Voilà
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  11. #11
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Merci segphault pour tes liens. Mais j'ai une question, comment faire pour modifier le .bashrc. de l'utilisateur apache ?
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  12. #12
    Membre actif Avatar de griese
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    646
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations forums :
    Inscription : Juin 2006
    Messages : 646
    Points : 281
    Points
    281
    Par défaut
    Bon, petit à petit j'avance. Je viens de remaqué qu'il me manque le fichier oci8.so qui est obligatoire (apparement) pour que php puisse se connecté à une base oracle. Quelqu'un pourrait-il me dire où je peux trouver ce fichier ? Merci d'avance
    (\ _ /)
    (='.'=) Voici Lapinou. Aidez le à conquérir le monde
    (")-(") en le reproduisant.

    http://mosfootball.over-blog.com

  13. #13
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 42
    Points : 39
    Points
    39
    Par défaut
    L'interface OCI s'installe avec un client Oracle.
    Il te faut donc installer un client Oracle sur ton serveur Apache/PHP en oubliant pas de cocher dans la liste des produits à installer "Oracle Call Interface".

    Autre solution, l'Instant Client
    http://www.oracle.com/technology/tec...ent/index.html

    Tu as sur le site d'Oracle des explication sur comment l'installer avec Apache/PHP

  14. #14
    Membre du Club
    Inscrit en
    Juin 2005
    Messages
    81
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 81
    Points : 67
    Points
    67
    Par défaut
    Bonjour,

    J'ai un peu le même problème... J'ai easyPhp 1.8 en local qui arrive très bien à interagir avec Oracle.
    Le meme EasyPhp 1.8 sur un serveur (windows 2000 je pense, sans etre sur) doit intéragir aussi avec Oracle sauf que j'ai l'erreur "call to undefined function ora_logon()".

    J'ai bien vérifié que les extensions oracle et oci (au cas où ^^) sont bien décommentées dans les 2 php.ini (pourquoi il y en a 2??). J'ai comparé les config en local et sur le serveur et ce sont les memes (enfin au niveau des extensions).
    Ce qui est bizarre c'est que ca a déjà marché sur le serveur. Je ne sais pas ce qui s'est passé depuis et, à part les extensions, je ne vois pas d'ou le problème peut venir.
    Surtout que j'ai vu dans le lien qu'il n'y a que les extensions à décommenter...

    Merci de votre aide


    EDIT:

    J'ai localisé le problème je pense. J'ai regardé les PHPinfo, dans un cas j'ai rien (celui qui marche pas), dans l'autre j'ai ca :
    oracle
    Oracle Support enabled

    Comment pourrais je l'activer sachant que les extensions sont ajoutées?
    Tout ch'ti qui pisse i tient s'biroute din ch'min
    La victoire est conservatrice, la défaite est évolutive

  15. #15
    Membre du Club
    Inscrit en
    Mai 2006
    Messages
    240
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 240
    Points : 65
    Points
    65
    Par défaut
    j'ai le meme probleme sauf que moi je tourne sous vista et que j'ai easy php et que j'utilise oracle 10g. je post ici mon fichier connection.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <?php
    	//connexion à la base
    	$ora_conn = ora_logon("http://127.0.0.1:8080/apex/xe@OracleServiceXE","hr");
    ?>
    j'ai cette erreur à la ligne 3
    Fatal error: Call to undefined function: ora_logon() in c:\program files\easyphp1-8\www\project 2\connexion.php on line 3

    que dois je faire??

Discussions similaires

  1. [Oracle] Import d'Excel vers Oracle via PHP
    Par gogolak dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 23/05/2011, 15h22
  2. [Oracle] connexion Oracle via un formulaire
    Par CYCLOPE91440 dans le forum PHP & Base de données
    Réponses: 16
    Dernier message: 11/12/2006, 22h50
  3. Méthode d'accès à Oracle via PHP
    Par nicocolt dans le forum Oracle
    Réponses: 1
    Dernier message: 19/10/2006, 15h57
  4. [Oracle] Connexion à Oracle via adodb
    Par mikabail dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 18/07/2006, 15h12
  5. CONNEXION ORACLE VIA PERL
    Par bouda27 dans le forum Oracle
    Réponses: 1
    Dernier message: 07/04/2006, 17h06

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