Précédent   Forum des professionnels en informatique > PHP > PHP & SGBD > PHP & Oracle
PHP & Oracle Forum d'entraide sur Oracle avec PHP. Avant de poster -> FAQ Oracle et Cours Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/12/2006, 11h53   #1
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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 :
1
2
 
$connexion = ora_logon("mabase@service","motdepasse");
ou ca :
Code :
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 14h46   #2
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Code :
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 16h29   #3
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

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

http://mosfootball.over-blog.com
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/12/2006, 21h31   #4
Modérateur
 
Avatar de mathieu
 
Inscription : juin 2003
Messages : 4 893
Détails du profil
Informations forums :
Inscription : juin 2003
Messages : 4 893
Points : 4 466
Points : 4 466
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 ?
__________________
Modérateur PHP
mathieu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 09h21   #5
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 10h08   #6
Modérateur
 
Avatar de Rakken
 
Inscription : août 2006
Messages : 1 207
Détails du profil
Informations forums :
Inscription : août 2006
Messages : 1 207
Points : 1 137
Points : 1 137
Soit la table f_xml :
Code :
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 :
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 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2006, 11h21   #7
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 15h24   #8
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 16h42   #9
Nouveau Membre du Club
 
Inscription : septembre 2004
Messages : 71
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 71
Points : 30
Points : 30
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
segphault est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/12/2006, 16h47   #10
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2006, 10h31   #11
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/12/2006, 15h49   #12
Membre confirmé
 
Avatar de griese
 
Inscription : juin 2006
Messages : 646
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Ille et Vilaine (Bretagne)

Informations forums :
Inscription : juin 2006
Messages : 646
Points : 243
Points : 243
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
griese est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 12/12/2006, 11h57   #13
Membre à l'essai
 
Inscription : novembre 2005
Messages : 42
Détails du profil
Informations forums :
Inscription : novembre 2005
Messages : 42
Points : 20
Points : 20
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
Marthym est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2007, 11h40   #14
Nouveau Membre du Club
 
Inscription : juin 2005
Messages : 81
Détails du profil
Informations forums :
Inscription : juin 2005
Messages : 81
Points : 37
Points : 37
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
gscorpio est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/06/2008, 20h01   #15
Nouveau Membre du Club
 
Inscription : mai 2006
Messages : 223
Détails du profil
Informations forums :
Inscription : mai 2006
Messages : 223
Points : 28
Points : 28
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 :
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??
ledawa est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h50.


 
 
 
 
Partenaires

Hébergement Web