La connexion entre php et oracle 10 g

Fermé
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 - 13 avril 2009 à 16:32
 KéKeCest ?? - 17 avril 2009 à 23:26
Bonjour,
Avez vous une idée sur la façon de faire la connexion entre php et une base de données oracle 10 g?
A voir également:

13 réponses

KéKeCest ??
17 avril 2009 à 21:33
Re,

Voilà un exemple de code commenté d'après des infos. trouvées simplement sur wiki.

Source : https://community.oracle.com/hub/

> Une image sous ORACLE est stockée sous la forme d'un "BLOB".
> Demande nous d'autres info. si tu comprends pas le principe.

A+ !.

// Notes : on assumera les données suivantes :                                   
//                                                                                                    
// Notre image de type "blob" est stockée dans une table                     
// appelée ici BTAB à 2 colonnes :                                    
// - La colonne BLOBID identifie l'image de façon unique (entier).  
// - La colonne BLOBDATA contenant l'image que l'on doit récupérer.

// connexion à Oracle sur ta Database
$conn = oci_connect('fati', 'nananani','personne', '');

if ($conn === false)
die("Connexion impossible : " . oci_error());
else
echo "Connexion réussie";

// Récupération de l'image avec identifiant BLOBID = 1 (exemple)
$myblobid = 1;

// La requête : note que :MYBLOBID n'est pas encore connu à ce stade..
$query = 'SELECT BLOBDATA FROM BTAB WHERE BLOBID = :MYBLOBID';

// Parsing de la requete SQL
$stid = oci_parse ($conn, $query);

// "Liaison" de la variable SQL :MYBLOBID avec la variable PHP $myblobid
oci_bind_by_name($stid, ':MYBLOBID', $myblobid);

// Execution requete
oci_execute($stid, OCI_DEFAULT);

// Recuperation image dans $result
$arr = oci_fetch_assoc($stid);

$result = $arr['BLOBDATA']->load();

// If any text (or whitespace!) is printed before this header is sent, 
// the text won't be displayed and the image won't display properly.
// Comment out this line to see the text and debug such a problem.

// Affichage header + image pour une image de type JPEG 
header("Content-type: image/JPEG");
echo $result;

// Liberation du 'statement'
oci_free_statement($stid);

// fermeture connexion
oci_close($conn);
1
KéKeCest !!
13 avril 2009 à 16:45
Bonjour,

Par ici : http://www.manuelphp.com/php/ref.oci8.php

Salutations.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
13 avril 2009 à 17:12
Je n'ai pas besoin de configurer mon apache de sorte qu'il sache dans quelle base il va travailler
0
KéKeCest !!
13 avril 2009 à 17:24
Re,

Je ne le vous fais pas dire !!... (:>)..

Il faut en effet peut être charger en mémoire les extensions php_oracle et php_oci8 dans les "PHP Extensions" du coté PHP de votre serveur (j'en oublie surement).

salutations.
0
KéKeCest !! > KéKeCest !!
13 avril 2009 à 17:39
Re,

Ajoutez aussi php_pdo_oci et php_pdo_oci8.
(je crois que c'est tout)

salutations.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
13 avril 2009 à 17:43
Vous pouvez m'expliquer en détails car je n'ai jamais fait ça et merci
0
KéKeCest !!
13 avril 2009 à 17:48
Re,

Vous avez quoi comme serveur Apache ?... Wamp ? .. EasyPHP ?...

Wamp :

- Allez sur l'icône à droite de l'écran.
- Cliquez dessus et sélectionnez le répertoire "PHP".
- Cliquez ensuite sur l'onglet "PHP Extensions".
- Enfin, activez à un à (il redémarre le serveur à chaque fois) les modules que j'ai indiqué précédemment.

Salutations.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
13 avril 2009 à 17:51
easyphp
0
KéKeCest !!
13 avril 2009 à 17:56
Oki,

Je ne connais pas les fonctionnalités de ce serveur mais la doc doit être claire je pense et ça doit surement ressembler à Wamp.

Dans le pire des cas, l'idée est de modifier le fichier php.ini dans les repertoires d'installation PHP en insérant chaque ligne nécessaire relatives au php_oracle etc... et de redémarrer.

Voili-voilo.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
13 avril 2009 à 17:58
merci je vais essayer
0
KéKeCest !!
13 avril 2009 à 18:00
"Ça devrait déjà être fait à cette seconde mon gaillard !!.."

(:>)
Bon courage.
0
KéKeCest !!
13 avril 2009 à 22:15
SEVEN UP (NONE DOWN) !..

Avez vous pu paramétrer votre serveur Apache pour une connexion Oracle ?.

Bonne soirée.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
14 avril 2009 à 19:45
Zn zffzt pas encore
j'ai essayé d'activer les extenssions mais je ne sais pas comment le faire
je les ai trouvé marquées en rouge avec message disant que je doit suivir le guide d'installation
et je sais pas de quel guide il parle.
0
KéKiDonc ??
14 avril 2009 à 19:51
Re,

Essayez déjà de vérifier que EasyPHP est à jour.

crdlt.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
14 avril 2009 à 19:55
Dis moi dans le cas standard je doix seulement les cocher puis demander leurs activation je ne doix pas faire autre chose(sachant que la version d'easy 2 et oracle 10g)
et merci
0
KéKiDonc ??
14 avril 2009 à 20:16
Re,

Si tes extensions apparaissent dans ton gestionnaire d'EasyPHP, oui il faut les cocher et relancer le serveur.

"(sachant que la version d'easy 2 et oracle 10g) "

Oracle 10G et EasyPHP n'ont rien à voir ensemble.
Oracle 10g c'est le SGBDR qui sera attaqué par ton serveur Apache-PHP - Oracle 10g est à jour tkt.

Je te parle de la mise à jour du logiciel EasyPHP.

Il faut aller sur le site d'EasyPHP et vérifier que le logiciel (le serveur Apache si tu veux) est à jour et faire une mise à jour si necessaire.

Crdlt.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
14 avril 2009 à 20:21
OK je vais le faire


Si tes extensions apparaissent dans ton gestionnaire d'EasyPHP, oui il faut les cocher et relancer le serveur.
Je ne peux les cocher j'ai dis qu'il me donne pas la main à les cocher il dit qu'il ont des problemes de dependance et il me demande de suivre le quide d'installation et je ne sais pas comment le faire
Je crois que le mieux c'est d'installer wampserver pour resoudre ce probleme definitivement.
0
KéKiDonc ??
14 avril 2009 à 20:30
Re,

Si tu a le courage d'installer Wamp à la place - je te le conseille vivement.

Mais c'est comme tu veux - il s'agit peut être de pas grand chose.

Je vais me renseigner sur EasyPHP et Oracle 10g.

Crdlt.
0
KéKiDonc ??
14 avril 2009 à 20:38
Re,

La connexion EasyPHP et Oracle 10g ne semble pas poser de problèmes :

Étapes à suivre :

> http://didier.deleglise.free.fr/conferences/afup_2004/oracle_et_php_connexion.htm

Mise à jour EasyPHP : v3.0 (07/01/2009).

> https://sourceforge.net/projects/quickeasyphp/files/

La dernière mise à jour d'EasyPHP doit (normalement) comporter tout ce qu'il faut au niveau des extensions.

Maintenant tu fais comme tu veux.

Crdlt.
0
CKoiDoncEnkor..
14 avril 2009 à 22:13
SEVEN UP (NONE DOWN) !..

Alors chère fati_fiore - où en êtes vous de vos problèmes Apache ?.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
15 avril 2009 à 11:47
Bonjour les amis j'ai installé wamp server mais quand je demande l'activation des extensions php_pdo_oci et php_pdo_oc8 il m'affiche un message d'erreur 'le service n'a pas pu être activer' et je ne sais ce que je doix faire
merci pour votre aide.
0
KéKeCest !!
15 avril 2009 à 21:21
Re,

Tu a bien la dernière version de Wamp (v 2.0) ?.

Curieux comme message - je ne crois pas que ce soient les extensions qui bloquent - moi il m'indique rien si le serveur ne s'active pas - t'a pas un autre serveur qui bloque tes ports par hasard ??.

> Ouvre le fichier httpd.conf (accessible dans le répertoire Apache du gestionnaire de Wamp) et modifie la ligne suivante :

Listen 80

==> Mettre : Listen 130 à la place (port 130 par exemple).

> Relance Wamp - tous les voyants doivent être au vert normalement.

Sinon t'a essayé EasyPHP ?... c'est un serveur Apache qui fonctionne bien il parait (:>)..

crdlt.
0
KéKeCest !!
15 avril 2009 à 21:28
Re,

Oublie pas de désinstaller EasyPHP - il peut bloquer Wamp si il se lance au démarage.

slt.
0
KéKiDonc ??
16 avril 2009 à 06:05
SEVEN UP (NONE DOWN) !

Alors !!!.... où en êtes vous de vos problèmes Apache ?.

Crdlt.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
16 avril 2009 à 11:45
Bonjour
J'ai pu me connecté à ma base de données
pour le script php j'ai utilisé une partie du code pour la connexion et l'affichage des données
maintenant j'essaye d'utiliser un code plus comprehensible pour pouvoir le modifier comme je veux
voila ce que je fais
<?php


$conn = oci_connect('fati', 'nananani',
'personne', '');


if ($conn === false)
die("Connexion impossible : " . oci_error());
else
echo "Connexion réussie";


$query = "SELECT * FROM service";
$req = oci_parse($conn, $query) or die("Erreur préparation requête");;
$result = oci_execute($req, OCI_DEFAULT) or die("Erreur éxécution requête");

while($ligne = oci_fetch_array($result))
{ $o=$ligne['NOM'];
echo"$o";
print ($ligne["PRENOM"]);}



?>





mais il me donne une erreur

Warning: oci_fetch_array() expects parameter 1 to be resource, boolean given in C:\Program Files\EasyPHP 3.0\www\test.php on line 18



je ne sais ce que je doix faire pour que ça passe
et merci d'avance
0
Re,

(de rien pour les infos. sur Apache)

Il semble que vous avez mélangé du MySql avec de l'Oracle au niveau de la structure des fonctions.

De plus, la fonction print n'existe pas en PHP.

Sources : https://www.php.net/manual/fr/book.oci8.php

Essayez donc ça (modifications importantes indiquées en gras) :

<?php
$conn = oci_connect('fati', 'nananani', 'personne', '');

if ($conn === false)
die("Connexion impossible : " . oci_error());
else
echo "Connexion réussie";


$query = "SELECT * FROM service";
$req = oci_parse($conn, $query) or die("Erreur préparation requête");;
oci_execute($req) or die("Erreur éxécution requête");

while($ligne = oci_fetch_array($req, OCI_ASSOC))
{
$Nom=$ligne['NOM'];
$Prenom = $ligne['PRENOM'];
echo"Nom : $Nom-- Prenom : $Prenom";

}
?>

Salutations.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
17 avril 2009 à 10:49
Bonjour merci beaucoup les kikés le probleme de connexion est recolu maintenant je me trouve devant un autre c'estl'affichage les images stockées dans ma base Oracle 10 g
je n'ai aucun idée.
0
CéKoiDonc ??
17 avril 2009 à 11:36
Re,

T'a des images dans ta base Oracle ??... je n'ai pour le moment aucune idée comment traiter ce type d'objets mais je vais me renseignerpour ma part (peut etre des CLOB).

A+.
0
fati_fiore Messages postés 543 Date d'inscription dimanche 26 octobre 2008 Statut Membre Dernière intervention 8 juin 2010 12
17 avril 2009 à 11:55
si tu as aucune idée je te demande de m'aider et merci beaucoup.
0
KéKeCest ??
17 avril 2009 à 20:54
Re,

Question :

A tu vraiment besoin de stocker les images de ton site dans Oracle ?..

On peut sinon utiliser les méthodes standards PHP à moins que tes images soient déjà stockées dans Oracle et que tu ne peux faire autrement (par exemple, la base Oracle ne t'appartient pas et est localisée sur un serveur autre que le tiens).

Merci de ta réponse.
0
KéKeCest ??
17 avril 2009 à 23:26
A+, bonne nuit et à demain peu être (dodo).

Tiens les "KéKe's" et autres "CéKoi's" au courant sur l'avancement de ton projet (:>).
0