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 :

Se connecter à deux bases en même temps [MySQL]


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut Se connecter à deux bases en même temps
    Bonjour à tous,

    j'aimerais savoir si MySQL permet de se connecter facilement à deux bases en même temps. J'aimerais utiliser toutes les tables d'une base plus une table supplémentaire d'une autre base.

    [Base1]
    table 1
    table 2
    table 3

    [base2]
    table 21 (table à ajouter)
    table 22

    L'idéal serait de pouvoir se connecter aux deux bases et de gérer les tables "table 1","table 2", "table 3" et "table 21" comme si elle faisait partie de la même base. (je ferais en sorte que les noms de table soient différents dans les deux bases).

    Avez vous des astuces pour faire cela?

    Merci d'avance.

  2. #2
    Membre éclairé
    Avatar de doudoustephane
    Homme Profil pro
    Gérant
    Inscrit en
    Août 2005
    Messages
    1 129
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Gérant

    Informations forums :
    Inscription : Août 2005
    Messages : 1 129
    Points : 862
    Points
    862
    Par défaut
    ben, je pense que tu peux le faire en déclarant deux connexions différentes (pas tester), et ensuite, tu précises la connexion à utiliser dans ton mysql_query.
    doudouallemand
    développeur en folie cherche à ... développer encore plus

  3. #3
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    j'ai le meme probleme, et lors d'une jointure sur 2 tables qui sont sur 2 bases distinctes, je ne vois pas comment faire.
    Quand on demande 2 connections d'affilé dans le code c'est la derniere qui à raison, et on ne peut du coup acceder au 2 bases simultanément.
    Voici le code, je suis en php 5 malgré les apparences:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    $cnx2 = mysql_connect($hote, base1, $pass)
    					or die(mysql_error());
    				$ret2 = mysql_select_db(base1)
    					or die(mysql_error());
     
    				$cnx1 = mysql_connect($hote, base2, $pass)
    					or die(mysql_error());
    				$ret1 = mysql_select_db(base2)
    					or die(mysql_error());
     
    				$req = "SELECT t1.det_nom, t2.img_id, t2.img_thumb_nom, t3.imgth_id
    				FROM base1.detail t1, base2.image t2, base1.imageth t3
    				WHERE t1.det_classe = '".$context."'
    				and t2.img_nom = t1.det_nom
    				and t3.imgth_nom = t2.img_thumb_nom";

  4. #4
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    J'avais fait les même tests et j'étais arrivé au même résultat.
    Je pense qu'il doit y avoir une astuce mais plus du coté MySQL que du coté PHP. J'ai entendu parler de DBLINK en Oracle qui permettrai, si j'ai bien compris, de joindre différentes tables de différentes bases et de travailler dessus comme si elles n'appartenaient qu'à une table.
    Par contre, je ne suis pas sure qu'il y ai d'équivalent MySQL et, de plus, je ne suis pas sure que ce soit la bonne piste.
    L'idéal serait d'avoir un retour d'expérience de quelqu'un à déjà rencontré ce cas.

  5. #5
    Membre régulier
    Inscrit en
    Janvier 2005
    Messages
    71
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 71
    Points : 72
    Points
    72
    Par défaut
    Ben normalement la solution de span_ar marche
    J'utilise cette solution sur une appli sans probleme.
    Normalement on ouvre 2 connexion et devant chaque table il faut préciser le nom de la base, puis celui de la table.

    Voilà comment je le gère dans mon appli :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    $MaConnexion = mysql_connect("localhost", "root", "") or trigger_error(mysql_error(),E_USER_ERROR); 
    mysql_select_db("site");
     
    $MaConnexion = mysql_connect("localhost", "root", "") or trigger_error(mysql_error(),E_USER_ERROR); 
    mysql_select_db("Archive");
     
    $CSite = "SELECT c.Login, Date, Heure FROM site.table1 a,";
    $CSite .= " archive.table2 b WHERE a.idTable = b.idTable";		
    $Site = mysql_query($CSite) or die("Erreur de requete".mysql_error());

  6. #6
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    du coup je ne comprends pas non plus...

  7. #7
    Membre régulier
    Homme Profil pro
    Inscrit en
    Avril 2007
    Messages
    277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 277
    Points : 93
    Points
    93
    Par défaut
    Pour être un peu plus concret, je cherche à faire cela pour gérer mes membres. Je fais plusieurs petits sites avec une base par site. Jusque là tout est normal. Cependant, je cherche à centraliser l'inscription des membres. Je voudrais donc faire juste une base avec une table membre qui sera disponible pour l'ensemble des sites.

    Pensez vous que la gestion des requêtes sur la base du site et la base centrale est la bonne solution ?

    En fait, je cherche une astuce miracle qui permettrais de connecter la base d'un site à la base central pour n'avoir l'impression de travailler que sur une seule table.


    [EDIT] J'ai retesté mes requêtes similaires à celle de span_ar et cela marche correctement.

  8. #8
    Futur Membre du Club
    Inscrit en
    Septembre 2006
    Messages
    13
    Détails du profil
    Informations forums :
    Inscription : Septembre 2006
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    ok c'est ma faute, il faut juste utiliser le meme mot de passe pour les 2 DBs concernés.
    Cela dit c'est à mon gout une limitation.

    Merci à tous

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 27/06/2011, 09h47
  2. Se connecter à plusieurs bases en même temps
    Par sihammaster dans le forum VB.NET
    Réponses: 6
    Dernier message: 12/04/2010, 20h33
  3. [ZF 1.5] Se connecter à deux bases en même temps
    Par Jonathan.b dans le forum Zend_Db
    Réponses: 9
    Dernier message: 22/04/2008, 15h09
  4. [Débutant] Se connecter à 2 bases en même temps
    Par Prohte dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 28/02/2006, 18h20
  5. [MySQL] Se connecter à deux base de données en même temps ??
    Par leo13 dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 20/01/2005, 10h36

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