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 :

requetes préparées avec oracle [Fait] [Oracle]


Sujet :

PHP & Base de données

  1. #1
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut requetes préparées avec oracle
    Bonjour,

    Je suis en train de regarder le cours sur les requêtes préparées et je me posais plusieurs questions.

    Tout d'abord l'exemple est avec une base de données mysql je pense (puisque c'est ce qui est mis dans la première ligne) : comment l'intégrer avec oracle ?

    Ensuite, j'ai compris qu'il fallait faire un truc dans ce genre pour exécuter les requetes :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $variable_de_la_requete_preparee->execute(array(valeur1, valeur2, valeurN));
    (ou rien dans le execute s'il n'y a pas de paramètres à passer, sinon bien les mettre dans l'ordre)

    Il n'y a donc plus besoin d'utiliser les fonctions oci_parse et oci_execute ?

    Ensuite, un peu dans le même sens que la dernière, mais je pense connaitre la réponse : les fonctions oci_connect et oci_close sont bien encore utiles ou bien la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = new PDO('mysql:host=localhost;dbname=developpez', 'utilisateur', 'motdepasse');
    suffit-elle à se connecter ?

    Merci d'avance

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Juste pour rappel, nous avons déjà discuté de ça il n'y a pas longtemps , je te propose de relire le thread suivant :

    http://www.developpez.net/forums/sho...d.php?t=586696

    Dans le tutoriel, ce n'est pas OCI8 mais la librairie PDO qui est utilisée. Comme je te le disais dans le thread ci-dessus, PDO est une interface générique d'utilisation des bases de données en PHP, implémentée pour chaque SGBD. C'est en fait une surcouche des libs propriétaires comme OCI8.

    oci_parse => $pdo->prepare
    oci_execute => $pdo->exec

    Le constructeur de la classe PDO se connecte directement à la base de données.

    Attention le module PDO pour Oracle est expérimental ! http://fr.php.net/manual/fr/ref.pdo-oci.php

    Des liens intéressants concernant Oracle et PHP :

    http://download.oracle.com/docs/cd/B...b25317/toc.htm (c'est à partir de ces exemples que j'ai créé mon API, cf autre thread)

    http://www.oracle.com/technology/pub..._bindings.html (requêtes préparées)

    http://www.oracle.com/technology/tec...way_to_web.pdf (attention à la partie sur les connexions persistantes, elles sont généralement déconseillées)

    Oracle PHP Developer Center

  3. #3
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Merci pour ces liens.

    Je me posais une question : si cette technique est expérimentale avec oracle (si j'ai bien compris) n'est-ce pas "dangereux" de l'utiliser ?

    Je veux dire dangereux dans le sens où il est dit que (si j'ai bine compris toujours) le nom des fonctions peut changer du jour au lendemain et donc le code serait à reprendre pour effectuer les modifications.

    Ne serait-il donc pas plus sage d'attendre que la technique se stabilise avec oracle avant de l'implémenter ?

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    178
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 178
    Par défaut
    Personnellement j'attendrais aussi pour utiliser PDO pour Oracle, c'est pourquoi je t'ai pointé le doigt sur le fait qu'elle est expérimentale

    Je te propose d'utiliser OCI8 et une surcouche à toi, comme celle que j'ai faite. Cela a le mérite de te rendre moins dépendant de la lib utilisée en dessous et surtout te simplifie sacrément le code dans tes pages PHP !

  5. #5
    Membre éclairé
    Inscrit en
    Avril 2007
    Messages
    483
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations forums :
    Inscription : Avril 2007
    Messages : 483
    Par défaut
    Je penses que je vais donc attendre ^^

    De mon coté j'ai fait de simples scripts php, trois pour être exact.
    L'un pour la connexion, l'un pour parser la requete et l'exécuter, et le dernier pour effectuer un commit, fermet la connexion et effectuer un oci_free_statement pour libérer la mémoire.

    J'appelle le script de connexion à la première nécessité d'effectuer une requete et je ferme la connexion après la dernière, j'ai également deux scripts pour exécuter les requetes afin de pouvoir faire une requête pendant l'affichage d'une autre (je ne sais pas si c'est la meilleur solution mais ca marche plutot bien)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. requete parametrer avec Oracle
    Par lazins dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/11/2008, 15h52
  2. [SQL - Oracle 9i] Requete Sql avec filtre sur critere
    Par shaun_the_sheep dans le forum Oracle
    Réponses: 3
    Dernier message: 05/12/2007, 08h45
  3. [C#] Soucis requete avec oracle
    Par kyrsa dans le forum C#
    Réponses: 2
    Dernier message: 25/04/2007, 22h30
  4. Requete SQL avec Oracle
    Par gloglo dans le forum Oracle
    Réponses: 5
    Dernier message: 03/10/2006, 14h23
  5. requete paramétrée avec TADOQuery et Oracle
    Par SlimInfo dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/05/2006, 09h44

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