Page 1 sur 1

php + oracle : bon ménage ?

Posté : 28 févr. 2008, 16:10
par Korg
Bonjour,

J'ai toujours développé dans un environnement php mysql et là on me demande de travailler avec le couple php oracle et je balise forcément ne connaissant rien à oracle :?

Que faut-il savoir ? Les fondamentaux ? Et surtout y a t-il un équivalent à easyphp pour que je me fasse la mimine ?

Merci de votre éventuelle précieuse aide

Korg

Posté : 28 févr. 2008, 16:19
par Hywan
Je ne connais pas trop Oracle. En revanche, je ne peux que trop te conseiller d'utiliser PHP Data Object (PDO) si tu as PHP 5. Normalement, pour des requêtes simples SQL, tu n'auras pas de grosses différences. Les problèmes que tu pourrais rencontrer sont lors d'utilisation de fonctions propres aux différents moteurs SQL (MySQL, SQLite, Oracle etc.). Voilà en ce qui concerne SQL directement. Mais je ne pourrais pas t'en dire plus concernant l'installation sous Windows etc.

Posté : 28 févr. 2008, 16:24
par Berzemus
hmm... oracle ne s'installe pas comme easyphp.. y'a des paramètres qui rentrent en jeu, des jeu de connections, des clients oracle à installer..

Un fois paramètré, c'est aussi simple que mysql (en tant que bd SQL). Pour ma part, je passe par un lien odbc.

Sinon, y'a un beau guide (anglophone) de 200 pages sur le sujet:
The Underground PHP and Oracle manual.

Posté : 28 févr. 2008, 16:26
par Korg
Merci HyWaN pour la rapidité de ta réponse mais c'est (pour moi) pas clair du tout lol.

Il n'y a pas comme pour easyphp un soft que tu installes et qui te permette de créer ta base, tes tables et champs oracle attaquables directement avec du php comme avec mysql ?

Korg

Posté : 28 févr. 2008, 16:29
par Hywan
PDO est une couche d'abstraction entre tes bases et ton interface. Un peu comme ODBC (proposé par notre ami Berzemus).

Si on lit le second paragraphe de la documentation, on pourra lire :
PDO fournit une interface d'abstraction à l'accès de données, ce qui signifie que vous utilisez les mêmes fonctions pour exécuter des requêtes ou récupérer les données quelque soit la base de données utilisée. PDO ne fournit pas une abstraction de base de données : il ne réécrit pas le SQL, n'émule pas des fonctionnalités manquantes. Vous devriez utiliser une interface d'abstraction complète si vous avez besoin de cela.
, c'est suffisament clair je pense :).

Posté : 28 févr. 2008, 16:37
par Korg
c'est suffisament clair je pense :).
Probablement quand on connait un minimum le truc :wink:

Rien que le terme "couche d'abstraction" j'me crois revenir au lycée avec des cours de philo ou de sciences :lol:

En admettant que j'utilise PDO que faut-il faire pour ne pas faire justement de bétises...

Korg

Posté : 28 févr. 2008, 16:41
par Hywan
Rien. PDO est de base dans PHP 5, tu lis le manuel, et tu apprends à l'utiliser. C'est assez intuitif.

Posté : 28 févr. 2008, 16:58
par Korg
Ok, mais oracle dans tout ça ??? :oops:

Korg

Posté : 28 févr. 2008, 17:01
par Berzemus
en revanant au sujet :
Oracle et php

Posté : 28 févr. 2008, 17:01
par Alkann
Tu peux jeter un oeil au niveau de la version Express Edition : http://www.oracle.com/technology/produc ... index.html :wink:

Posté : 28 févr. 2008, 17:05
par Ryle
Récupère la version gratuite Oracle XE pour te faire la main :) C'est une version d'oracle complète et gratuite, limitée uniquement par sa capacité (4Go de données, y a quand même de la marge :)).
Il y a une interface web de gestion des données (ça vaut pas un Toad, mais c'est un équivalent raisonable de phpMyAdmin)

Mais pas d'inquiétude à avoir... il y a bien sur des différences, Oracle est beaucoup plus rigoureux (pas de ` pour protéger les champs, faut leur donner des noms propres - et pas des mots clés réservés - dès le début ;)), on double les apostrophes pour les protéger au lieu de les backslasher ( WHERE champ = 'l''apostrophe' ), et il a une syntaxe bien a lui pour les jointures externe (faut oublier les JOIN/ON et utiliser un "(+)" directement dans la condition de jointure), mais pour le reste, ce n'est que du SQL :)

Côté php, la connexion qui est légèrement différente (faut activer les modules qui vont bien dans le php.ini) et utiliser les fonction oci_* au lieu de mysql_* pour la connexion et l'exécution, et pour peu que tu ais fait des fonctions pour généraliser tout cela, il n'y a au final pas grand chose qui change :)

Et pis au besoin, on est là ;)

Posté : 04 mars 2008, 10:20
par Korg
SUPER, MERCI A TOUS ET EN PARTICULIER A TOI RYLE :)

Je devrais pouvoir me lancer un minimum maintenant ;)

Korg

Posté : 04 mars 2008, 11:43
par zeus
Modération :
Puisque ta question est résolue, j'ajoute le tag [Résolu]
pour indiquer aux personnes qui voudront consulter ce sujet qu'il contient une solution.

Tu peux réaliser cette opération toi-même
en cliquant sur le bouton Image qui s'affiche en haut à gauche de ce sujet
si tu as posté le 1er message en tant que membre (inscrit et identifié).

Alors... inscris-toi !!! ;)