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

Langage PHP Discussion :

Deux base de donnees pour une seule requete


Sujet :

Langage PHP

  1. #1
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut Deux base de donnees pour une seule requete
    Bonjour,

    J'ai une requete SQL qui utilise 2 tables, chaque table appartient a une base de donnee, comment faire afin d'eviter l'erreur de table n'existe pas dans la base de donnee x:

    Mon code PHP est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    mysql_select_db($db_statistics) or die ('Erreur de selection de la BD1: '.mysql_error());
    mysql_select_db($db_infos) or die ('Erreur de selection de la BD2: '.mysql_error());
     
    SELECT * FROM table1 JOIN table2 ON table1.id = table2.id

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Par défaut
    Il suffit de préfixer les tables du nom de la base :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM db1.table1 JOIN db2.table2 ON db1.table1.id = db2.table2.id
    Sachant que :
    • avec des tables aliasées on peut ainsi avoir des références à celles-ci qui évitent de réemployer le nom de la base
    • qu'une table de la base courante (celle sélectionnée via mysql_select_db) n'a pas besoin d'être préfixée
    • qu'il faudra introduire dynamiquement, en PHP, le nom de la base si celui-ci est paramétrable


    Deux appels à mysql_select_db ne fonctionnant pas : seul le dernier appel sera effectif car vous ne pouvez avoir qu'une seule base courante.

  3. #3
    Membre éclairé
    Inscrit en
    Janvier 2007
    Messages
    425
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 425
    Par défaut
    Citation Envoyé par julp Voir le message
    Il suffit de préfixer les tables du nom de la base :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM db1.table1 JOIN db2.table2 ON db1.table1.id = db2.table2.id
    Sachant que :
    • avec des tables aliasées on peut ainsi avoir des références à celles-ci qui évitent de réemployer le nom de la base
    • que les tables de la base courante (celle sélectionnée via mysql_select_db) n'a pas besoin d'être préfixée
    • qu'il faudra introduire dynamiquement, en PHP, le nom de la base si celui-ci est paramétrable


    Deux appels à mysql_select_db ne fonctionnant pas : seul le dernier appel sera effectif car vous ne pouvez avoir qu'une seule base courante.
    julp merci, une ferosse erreur de ma part, j'utilise les BD comme ca:

    $db1 = db_nom_db1;
    $db2 = db_nom_db2;

    Alors je les ai utlise ainsi:

    SELECT ... db.table.id au lieu de $db.table.id

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

Discussions similaires

  1. Servlet Erreur Insertion 2 fois pour une seule requete SQL
    Par cjohnson dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 11/03/2011, 11h58
  2. error connexion ODBC a une base de donnees pour une requete select
    Par padawanette dans le forum Windows Forms
    Réponses: 7
    Dernier message: 10/09/2008, 19h49
  3. Deux moteurs interbase pour une seule base ?
    Par Yurck dans le forum InterBase
    Réponses: 11
    Dernier message: 21/09/2006, 16h45
  4. comment forcer l'exécution des macros pour une seule base ?
    Par tristan_sauvage dans le forum Access
    Réponses: 4
    Dernier message: 21/08/2006, 12h59
  5. Deux passages dans mon "execute" pour une seule soumission
    Par fabricew59 dans le forum Struts 1
    Réponses: 7
    Dernier message: 27/06/2006, 15h24

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