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

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

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 150
    Points : 230
    Points
    230
    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
    I want to break frite ~~ Chocolat....chocolat...CHOCOLAAAAAAAAAAT!!!

  2. #2
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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
    Points : 7 762
    Points
    7 762
    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 actif
    Avatar de Emyleen
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Aveyron (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 150
    Points : 230
    Points
    230
    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?
    I want to break frite ~~ Chocolat....chocolat...CHOCOLAAAAAAAAAAT!!!

  4. #4
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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
    Points : 7 762
    Points
    7 762
    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 actif
    Avatar de Emyleen
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Aveyron (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 150
    Points : 230
    Points
    230
    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?
    I want to break frite ~~ Chocolat....chocolat...CHOCOLAAAAAAAAAAT!!!

  6. #6
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    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
    Membre actif
    Avatar de Emyleen
    Femme Profil pro
    Webmaster
    Inscrit en
    Mars 2010
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 38
    Localisation : France, Aveyron (Midi Pyrénées)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 150
    Points : 230
    Points
    230
    Par défaut
    Merci mais je ne comprend rien aux pattern et franchement j'ai pas le temps de m'y pencher dessus.

    J'ai trouvé cette classe de Xavier Artot, je penses qu'elle fait exactement ce dont j'ai besoin.

    Qu'en pensez-vous?
    I want to break frite ~~ Chocolat....chocolat...CHOCOLAAAAAAAAAAT!!!

  8. #8
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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
    Points : 7 762
    Points
    7 762
    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.

  9. #9
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Emyleen Voir le message
    Merci mais je ne comprend rien aux pattern et franchement j'ai pas le temps de m'y pencher dessus.
    comment ça pas le temps ?

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

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 150
    Points : 230
    Points
    230
    Par défaut
    Je dois transvaser ma base de données de ODBC à MySQL d'ici mercredi prochain donc je n'ai pas le temps de comprendre les pattern. C'est trop compliqué pour moi, je voulait juste une classe PDO me permettant de me connecter à ODBC ou a MySQL le plus rapidement possible.

    @Benjamin Delespierre : Merci je comprend mieux ce que tu voulais dire par instance Il faudrait juste que j'arrive à caser tout ça dans une classe pour pouvoir m'en resservir dans toutes mes autres classes d'objet.
    I want to break frite ~~ Chocolat....chocolat...CHOCOLAAAAAAAAAAT!!!

  11. #11
    Expert éminent sénior

    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
    Points : 10 726
    Points
    10 726
    Par défaut
    Citation Envoyé par Emyleen Voir le message
    Je dois transvaser ma base de données de ODBC à MySQL d'ici mercredi prochain donc je n'ai pas le temps de comprendre les pattern. C'est trop compliqué pour moi, je voulait juste une classe PDO me permettant de me connecter à ODBC ou a MySQL le plus rapidement possible.
    si c'est trop compliquer pour toi c'est que y'a un problème d'orientation dans ton travail, quand c'est juste pour fun c'est tolérable, mais la venant d'un pro ....

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

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 150
    Points : 230
    Points
    230
    Par défaut
    Bah moi je suis infographiste à la base, j'ai du m'adapter au marché et j'ai appris le PHP Objet et les concepts généraux de la POO en fonction des nécessités. Désolé de ne pas être une développeuse qui maitrise totalement le PHP objet.

    Je commencerais les pattern quand j'aurai vraiment bien assimilé les bases de la POO, car déjà rien que d'utiliser une classe comme PDO j'ai du mal alors....
    I want to break frite ~~ Chocolat....chocolat...CHOCOLAAAAAAAAAAT!!!

  13. #13
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par Emyleen Voir le message
    Merci mais je ne comprend rien aux pattern et franchement j'ai pas le temps de m'y pencher dessus.

    J'ai trouvé cette classe de Xavier Artot, je penses qu'elle fait exactement ce dont j'ai besoin.

    Qu'en pensez-vous?
    J'en pense que tout ce qu'on trouve sur PHPClasses c'est pourri, mais tu fais ce que tu veux.

    En ce qui concerne cette classe:
    1 - Cette classe n'apporte rien de concrêt par rapport à PDO
    2 - Cette classe n'est pas portable !
    3 - Cette classe ne supporte pas tous les moteurs de stockage (en MySQL par exemple seul InnoDB supporte les transactions)
    4 - Une classe de connection qui envoie des mails, j'aurais tout vu !!!
    5 - Cette classe prétends être une couche d'abstraction mais je ne vois rien de ce genre
    6 - Une classe de connection en dépendance avec une classe de message (couche de présentation) j'aurais tout vu (encore) !!!

    Avant d'utiliser à tord des classes aussi mal conçues, tu devrais te poser la question de ce que tu cherches à faire. Une application PHP ne saurait se résumer à un patchwork de bouts de codes récupérés par-ci par-là sur internet.

  14. #14
    Expert éminent
    Avatar de Benjamin Delespierre
    Profil pro
    Développeur Web
    Inscrit en
    Février 2010
    Messages
    3 929
    Détails du profil
    Informations personnelles :
    Âge : 36
    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
    Points : 7 762
    Points
    7 762
    Par défaut
    Citation Envoyé par Emyleen Voir le message
    @Benjamin Delespierre : Merci je comprend mieux ce que tu voulais dire par instance Il faudrait juste que j'arrive à caser tout ça dans une classe pour pouvoir m'en resservir dans toutes mes autres classes d'objet.
    Ne te casse pas la tête avec une classe, tu as deux solutions plus simple:
    - Mettre les deux instances de connexion en global
    - Faire passer les instances aux classes qui en ont besoin (vu qu'en PHP les objets sont passés par référence, tu travaillera bien avec ces deux instances uniquement, il n'y aura pas de copie)

+ 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