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

Requêtes MySQL Discussion :

Plusieurs databases dans la meme requete.


Sujet :

Requêtes MySQL

  1. #1
    Membre du Club Avatar de Netek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 57
    Points : 67
    Points
    67
    Par défaut Plusieurs databases dans la meme requete.
    Bonjour,

    Voici ce que je cherche à faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    INSERT INTO database2.matable VALUES(SELECT * FROM database1.matable)
    Seulement je me suis heurté a un probleme, je l'ai simplifié pour aider a comprendre, voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $connec1 = mysql_connect($server1,$user1,$pass1);
    mysql_select_db('database1',$connec1);
    $connec2 = mysql_connect($server2,$user2,$pass2);
    mysql_select_db('database2',$connec2);
     
    mysql_query("SELECT * FROM matable", $connec1) // Fonctionne
    mysql_query("SELECT * FROM matable", $connec2) // Fonctionne
    Jusqu'ici tout va bien puisque ces 2 requetes fonctionnent. Le seul soucis c'est que de cette manière je ne peux pas avoir les 2 bdd dans la même requete ( dites moi si je me trompe ).

    J'ai donc fais ces tests :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    mysql_query("SELECT * FROM database1.matable") // Ne fonctionne pas !
    mysql_query("SELECT * FROM database2.matable") // Fonctionne !
    On voit ici qu'avec cette technique je ne peux pas acceder a la database1. C'est du a l'ordre des mysql_connect en debut de script. Si je place le mysql_connect sur la database1 en dernier, l'acces a database1 fonctionnera mais pas sur databas2.

    Quelqu'un a une idée svp ?
    Merci d'avance
    Développeur web netek.fr PHP, MySQL, Ajax, jQuery, Drupal, Magento

  2. #2
    Membre du Club Avatar de Netek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 57
    Points : 67
    Points
    67
    Par défaut
    Personne n'a une idée, une piste ?
    Merci.
    Développeur web netek.fr PHP, MySQL, Ajax, jQuery, Drupal, Magento

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query("SELECT * FROM database1.matable") // Ne fonctionne pas !
    Je pense que tu n'a pas le droit de faire une requête sur deux bases sur des serveurs différents:
    Rajoute ceci pour connaitre ton erreur:
    or die ('Erreur :'.mysql_error()); Ou exécute ta requête dans phpmyadmin!

    Par contre, je pense que tu dois pouvoir faire une requête sur de 2 bases différentes sur le même serveur.

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 799
    Points : 34 031
    Points
    34 031
    Billets dans le blog
    14
    Par défaut
    Je confirme ce que dit peofofo. Tu ne peux faire une requête sur deux bases que si les deux bases sont sur le même serveur.

    Et dans ce cas, inutile de faire un mysql_select_db().
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon nouveau blog sur les mêmes sujets.
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  5. #5
    Membre du Club Avatar de Netek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 57
    Points : 67
    Points
    67
    Par défaut
    Ok merci pour vos réponses.
    En fait les 2 bdd sont sur le même serveur mais n'ont pas le meme user, du coup obligé de faire 2 connexions.

    Mais je vais arranger ca pour avoir le même user et donc une seule connexion.

    Merci
    Développeur web netek.fr PHP, MySQL, Ajax, jQuery, Drupal, Magento

  6. #6
    Membre expert
    Avatar de ericd69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2011
    Messages
    1 919
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Avril 2011
    Messages : 1 919
    Points : 3 295
    Points
    3 295
    Billets dans le blog
    1
    Par défaut
    salut,

    ça dépend en fait de comment tu t'identifie et si les bd sont sur le même serveur ou pas...

    en gros: si ton utilisateur a les droits nécessaires pour les différentes bd et si elles sont sur le même serveur, tu peux accèder à tout ce que ton utilisateurs peut accéder sur les différentes bd...

    tu peux utiliser un mixe du nommage explicite (nom_bd.nom_ressource) ou implicite (avec la commande sql use ou php mysql_select_db par exemple)

    si tu es sur différents serveurs, faut être identifié sur chacun d'eux... et là c'est loin d'être simple et les connecteurs sgbd ne sont pas penser comme ça...

    sinon c'est une architecture unique mais répartie, ce qui t'oblige à utiliser des moteur et des options de compilation de mysql spécifiques et tu ne te connecte alors que sur l'un deux de toute façon...
    soyons pensez à mettre quand votre problème est résolu ou à utiliser pour les réponses pertinentes...
    ne posez pas de problématique soi-disant simplifiée sur des problèmes que vous n'êtes pas capable de résoudre par respect pour ceux qui planchent dessus... sinon: et à utiliser pour insérer votre code...

  7. #7
    Membre du Club Avatar de Netek
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2011
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2011
    Messages : 57
    Points : 67
    Points
    67
    Par défaut
    Après avoir appliqué les mêmes users aux 2 bdds, je n'ai donc besoin que d'une seule connexion dans mon script, et du coup tout marche nikel, merci
    Développeur web netek.fr PHP, MySQL, Ajax, jQuery, Drupal, Magento

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

Discussions similaires

  1. pb plusieurs count(*) dans une meme requete
    Par helrick dans le forum MySQL
    Réponses: 7
    Dernier message: 16/02/2010, 22h02
  2. Réponses: 1
    Dernier message: 19/01/2010, 11h52
  3. Réponses: 5
    Dernier message: 26/04/2006, 07h51
  4. sql update et insert dans la meme requete
    Par Jessicaa dans le forum Langage SQL
    Réponses: 8
    Dernier message: 14/12/2005, 15h39
  5. création de plusieurs fiches dans un meme formulaire...
    Par Toff !!!!! dans le forum Access
    Réponses: 3
    Dernier message: 13/10/2005, 13h44

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