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

Symfony PHP Discussion :

Symfony2 / BDD Oracle


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 128
    Par défaut Symfony2 / BDD Oracle
    Bonjour à tous,

    Je suis débutant en symfony (pas en php) et je cherche à développez un petit intranet.
    Cependant, cela fait maintenant 2 jours que je cherche à créer un lien entre ma base de donnée Oracle et mon projet symfony.

    J'ai bien vue que je devais utiliser doctrine ou encore propel ou autres mais j'aimerais justement NE PAS utiliser ces outils.

    Et là je bloque: Je ne trouve aucun tuto ou autre sur Internet (ou alors je suis passé à coté) qui me permettrait de connaitre ce qu'il y a a faire pour me connecter à cette base et tester via une simple requete SELECT * FROM... avec un petit affichage pour savoir si cela fonctionne réellement.

    J’espère que vous pourrez m'aider et que je n'en demande pas trop.

    Merci d'avance.

  2. #2
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $conn = $this->container->get('database_connection');
    $sql = 'SELECT * FROM ...';
    $rows = $conn->query($sql);

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2007
    Messages : 4
    Par défaut
    Bonjour,

    Dans votre cas, vous pouvez utiliser uniquement la couche DBAL de doctrine pour attaquer votre base de données.

    Voici ce que j'utilise pour lancer une query. Il s'agit une fonction dans la classe:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    protected function queryExecute($query, array $values)
    {
       $stmt = $this->conn->prepare($query);
       foreach ($values as $key => $value) {
           $stmt->bindValue($key, $value);
       }
       $stmt->execute();
     
       return $stmt->fetchAll(PDO::FETCH_ASSOC);
    }
    Excellente journée.

    Bertrand

    PS: il y a un canal IRC pour #symfony-fr

  4. #4
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 128
    Par défaut
    Bonjour,

    Tout d'abord merci pour vos réponses.
    Il me reste maintenant une question: La configuration de la connexion à la base de données se situe bien dans le fichier Parameters.yml ?
    Si oui voici le fichier que j'utilise. Es-ce bon ? (j'ai repris mon TNSNAME.ORA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    parameters:
        database_driver: oci8
        database_host: VDL
        database_port: 1521
        database_name: ***
        database_user: ***
        database_password: ***
    Et enfin dans vos bout de code vous avez respectivement 'database_connection' et 'conn'
    Ces variables comment sont-elles initialisées ? Vous vous servez de Parameters.yml ?

    Merci

  5. #5
    Membre Expert Avatar de Nico_F
    Homme Profil pro
    Développeur Web
    Inscrit en
    Avril 2011
    Messages
    728
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Avril 2011
    Messages : 728
    Par défaut
    Ton parameters.yml a l'air ok (après c'est la config de ta base on peut difficilement savoir à ta place ^^).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $conn = $this->container->get('database_connection');
    Cette ligne appelle le service portant l'id 'database_connection' que tu peux retrouver en tapant la commande php app/console container:debug dans ton terminal. Cette commande va te lister tous les services accessibles depuis le container et notamment ces deux lignes :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     database_connection                                                                      n/a       alias for "doctrine.dbal.default_connection" 
     doctrine.dbal.default_connection                                                         container stdClass
    Ce service utilise les informations que tu auras déclaré dans ton fichier parameters.yml.
    Le $this->conn présume que tu te trouve dans une classe qui possède ce service comme attribut.

    Il t'est ensuite possible de faire des requêtes natives et de les binder toi même avec tes entités, soit avec une classe custom, soit en utilisant le ResultSetMapping de Doctrine.

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2011
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2011
    Messages : 5
    Par défaut
    Citation Envoyé par ruyeken Voir le message
    Bonjour,

    Tout d'abord merci pour vos réponses.
    Il me reste maintenant une question: La configuration de la connexion à la base de données se situe bien dans le fichier Parameters.yml ?
    Si oui voici le fichier que j'utilise. Es-ce bon ? (j'ai repris mon TNSNAME.ORA)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    parameters:
        database_driver: oci8
        database_host: VDL
        database_port: 1521
        database_name: ***
        database_user: ***
        database_password: ***
    Et enfin dans vos bout de code vous avez respectivement 'database_connection' et 'conn'
    Ces variables comment sont-elles initialisées ? Vous vous servez de Parameters.yml ?

    Merci
    Ne pas oublier de rajouter dans le fichier config.yml le paramètre charset: UTF8 sous la connection DBAL car sinon Oracle ne répond pas correctement.

    Le retour de la query sera un tableau.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2012
    Messages
    128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2012
    Messages : 128
    Par défaut
    Ok c'est bien pris.
    Ca commence à prendre forme dans ma tête...

    J'ai bien modifier le parameters charset UTF8
    Je rappelle que je débute avec symfony.

    Donc j'ai une classe DB.class.php située dans le répertoire entity:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <?php
     
    namespace RPC\TestBundle\Entity;
     
    class DB{
        public function allCustomer(){
            $conn = $this->container->get('database_connection');
            $sql = 'SELECT * FROM CUSTOMER';
            $rows = $conn->query($sql);
     
            return $rows;
        }
    }
    Mais dans mon controller du coup ça se passe comment ? et dans mon twig ? Parce que dans mon twig c'est l'affichage et mon controller est censé récupérer le résultat de la requête et de l'insérer dans mon .twig.

    le getEntityManager, getRepository tout ça reste bien flou pour moi...

Discussions similaires

  1. Réponses: 28
    Dernier message: 28/07/2005, 14h12
  2. Accès BDD Oracle
    Par rgarnier dans le forum XMLRAD
    Réponses: 5
    Dernier message: 21/01/2005, 15h03
  3. Export Acces->Excel Requette sur bdd oracle
    Par cedrickb dans le forum Access
    Réponses: 2
    Dernier message: 31/12/2004, 14h27
  4. Connexion BDD oracle TNS protocol adapter error
    Par cedrickb dans le forum Access
    Réponses: 3
    Dernier message: 30/12/2004, 13h02
  5. Créer une BDD Oracle sur windows
    Par calimero82 dans le forum Administration
    Réponses: 7
    Dernier message: 25/10/2004, 15h30

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