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 :

Plusieurs bases de données [SQL-Server]


Sujet :

PHP & Base de données

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut Plusieurs bases de données
    Héllo à tous,

    Actuellement je travail sur un petit projet assez délicat de plusieurs connexion simultané à un serveur SQL 2008 r2, en effet sur celui je regroupe 40 bases de différentes ste, bien évidement je ne compte pas me connecter aux 40 d'un seul coup, je pense mettre à disposition des comptables des checkbox qui leurs permettrais de sélectionner un choix de 5 ou 10 bases.

    La requête étant la même pour chacune des ste j'aurais voulu savoir si un d'entre vous à déjà eu ce cas de figure, qui serais donc de créer un tableau des divers bases soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $db = array($db1,db2,db3,db4);
    et ensuite de faire un foreach sur l'objet PDO afin de parcourir celle-ci et retourner le resultat pour chaque base, de mon coté je séche pour la requete en elle même.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Si tu n'as qu'un serveur tu n'as pas besoin de faire plusieurs connexions.
    Une connexion peut interroger n'importe quel base d'un serveur.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Oui mais il faut bien définir une base ?, comment précise tu le faite de selectionner ou de passer de l'une à l'autre ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $PDO = new PDO('sqlsrv:Server=choco-PC;Database='.$v, $user, $mdp);
    $V étant l'une des base

  4. #4
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT * FROM base.table
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  5. #5
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Oui mais avec ce principe tu duplique la requête non ? comme par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    $query1 = "SELECT * FROM db1.table";
    $query2 = "SELECT * FROM db2.table";
    Alors que je me demandais si en faisant un truc du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $d = array ($db1,$db2,$db3);
     
    foreach ($db as $v){
     try{
        $PDO = new PDO('sqlsrv:Server=choco-PC;Database='.$v, $user, $mdp);
    }
    Et ensuite faire une boucle sur chaque base ($v):
    Un boucle pour chaque resultat de $v {
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      $req = $PDO->prepare('SELECT * FROM patatruc ); // * La guerre des étoile bientôt l'épisode 7
    	$req->execute();
     
    }
    Je test, mais cela n'a pas l'air de fonctionner

  6. #6
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $arDatabases= array ($db1,$db2,$db3);
    $PDO = new PDO('sqlsrv:Server=choco-PC;Database='.$db1, $user, $mdp);
    foreach ($arDatabases as $db){
         $query1 = "SELECT * FROM $db.table";
    }
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    intéressant, je vais regarder ça et e reviens vers toi

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    58
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    Merci, une fois un petit problème d'accès au schéma sa fonctionne nickel.
    Pour ceux que cela interesse :
    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
    16
    17
    18
    19
    20
    21
    22
    23
     
             $db1 = 'test1';
             $db2 = 'test2';
     
             $arDatabases = array($db1,$db2);
     
    try{
        $PDO = new PDO('sqlsrv:Server=choco-PC;Database='.$db1, $user, $mdp);
        $PDO->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
    }catch(PDOExeption $e){
    	echo'Connexion Impossible';
    }
    foreach ($arDatabases as $db){
        $sql = "SELECT * FROM $db2.dbo.Livres";
        $req = $PDO->query($sql);
    }
     
     
    while ($r = $req->fetch(PDO::FETCH_OBJ)) {
    	echo '<pre>';
    	print_r ($r);
    	echo '</pre>';
    }
    Attention de ne pas oublier qu'ici nous sommes en sql serveur et non mysql d'ou le $db2.dbo.Livres.
    Encore merci sabotage

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

Discussions similaires

  1. Limiter la taille d'une ou plusieurs bases de données
    Par Thierry8 dans le forum Administration
    Réponses: 7
    Dernier message: 12/03/2006, 23h51
  2. Réponses: 3
    Dernier message: 08/12/2005, 19h19
  3. Requête sur plusieurs bases de données
    Par Oluha dans le forum ASP
    Réponses: 8
    Dernier message: 14/10/2005, 14h57
  4. connexion a plusieurs bases de données oracle
    Par tarik75 dans le forum JDBC
    Réponses: 1
    Dernier message: 06/07/2005, 13h33
  5. triggers sur plusieurs bases de données
    Par Shabata dans le forum Langage SQL
    Réponses: 2
    Dernier message: 04/05/2004, 10h02

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