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 :

Utiliser PDO avec Odbc en Local et MySql en distant [PDO]


Sujet :

PHP & Base de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Avatar de Emyleen
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 151
    Par défaut Utiliser PDO avec Odbc en Local et MySql en distant
    Bonjour,

    J'ai un peu cherché, j'ai trouvé les syntaxes de connexion et tout pour utiliser PDO, mais je ne vois pas comment écrire dans mon code le fait que je veux que le site se connecte sur une base de données ODBC en local et par contre sur une base de données MySql à distance.

    Dois-je faire 2 fichiers de classe de connexion? Mais alors comment faire la différence lors de l'appel?

    Ou alors une autre solution?

    Merci d'avance pour vos lumières

  2. #2
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Hello

    Il faut juste que tu ouvres 2 connection avec PDO, soit deux instances distinctes: une pour ODBC et une pour MySQL.

  3. #3
    Membre éprouvé
    Avatar de Emyleen
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 151
    Par défaut
    Donc en fait je fais 2 __construct() dans ma classe connexion?

    Je vois pas trop comment les différencier, je teste les connexion peut etre, s'il n'arrive pas a se connecter à l'une je le connecte à l'autre c'est ça?

  4. #4
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Citation Envoyé par Emyleen Voir le message
    Donc en fait je fais 2 __construct() dans ma classe connexion?

    Je vois pas trop comment les différencier, je teste les connexion peut etre, s'il n'arrive pas a se connecter à l'une je le connecte à l'autre c'est ça?
    D'une pourquoi diable faire deux constructeurs et de deux c'est impossible en PHP...

    Ce ne sont pas deux constructeurs qu'il faut faire mais deux instances:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $connection_mysql = new PDO(...);
    $connection_odbc = new PDO(...);

  5. #5
    Membre éprouvé
    Avatar de Emyleen
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2010
    Messages
    151
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 151
    Par défaut
    Mais comment ça, 2 instances? Je ne vais pas rappeler le constructeur PDO à chaque fois en rentrant mes identifiants de connexion!

    Moi je veux pouvoir faire juste :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $connexion = new Connexion;
    $result = $connexion->query('ma requete');
    return $result;
    dans mes fonctions.
    En sachant que Connexion est une classe PHP qui a un constructeur utilisant PDO et me retournant un objet connexion.

    C'est pas possible ça? Je dois rentrer mes identifiants de connexion en clair à chaque fois? C'est un poil redondant non?

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le pattern Factory est la pour toi :
    http://php.net/manual/fr/language.oop5.patterns.php

    sinon un Registry fera l'affaire

  7. #7
    Expert confirmé
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2010
    Messages : 3 929
    Par défaut
    Donc si je suis ton raisonnement, on pourrait croire que tu ouvre la connexion à chaque requête. Tu dois te servir de l'instance pour effectuer tes requêtes de cette manière:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    $connection_mysql = new PDO(...);
    $connection_odbc = new PDO(...);
     
    $result_1 = $connection_odbc->query('odbc query 1');
    $result_2 = $connection_mysql->query('mysql query 1');
     
    $result_3 = $connection_odbc->query('odbc query 2');
    $result_4 = $connection_mysql->query('mysql query 2');
    Tu conserves une instance de chaque connexion tout au long du runtime, tu peux éventuellement t'aider d'un factory et d'un registry mais ce n'est pas vraiment nécessaire.

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

Discussions similaires

  1. [PDO] Problème de PDO avec migration mysql -> mssql
    Par bulkathos dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 25/07/2007, 12h15
  2. [MYSQL] [débutant] utiliser replace avec mysql.pas
    Par alex01pernot dans le forum Bases de données
    Réponses: 2
    Dernier message: 30/08/2006, 21h23
  3. Problème avec odbc MySQL
    Par xave dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 02/08/2006, 10h11
  4. Connecter Mysql avec ODBC en c++
    Par elodie35 dans le forum SQL Procédural
    Réponses: 10
    Dernier message: 18/05/2006, 18h53

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