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 :

utilisation simultanée de multiples connexions


Sujet :

PHP & Base de données

  1. #1
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut utilisation simultanée de multiples connexions
    Bonsoir,

    Un site Web, deux bases SQL...
    J'ai tantôt besoin d'accéder à une base, tantôt à l'autre dans mes scripts PHP.
    J'ai créer deux identifiants de connexion SQL vers les deux bases.

    Pour une requête attaquant la première base, je passe l'identifiant ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    mysql_query($requete,$id_num1);
    Seulement, je ne peux avoir qu'une seule connexion SQL à une base à moins de refaire un mysql_select_db à chaque requête.

    Connaissez-vous la syntaxe ou le moyen de simplement récupérer des données d'une base ou d'une autre en passant un identifiant de connexion? Ou bien suis-je obligé de faire autrement? J'ai testé sans succès les connexions persistantes à un serveur et une autre fonction d'exécution de requête dont le nom m'échappe...

    Merci bonne soirée

  2. #2
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Je n'ai personnellement jamais eu a faire a ce cas, mais je crois bien qu'il est nécessaire de re-selectionner la BDD entre les requetes !

  3. #3
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    OK merci

    Alors ça va être l'horreur car j'ai des tonnes de requêtes sur toutes mes pages. Une base ne sert qu'à la récup de données, l'autre à l'insertion des données clientes...deux bases totalement différentes mais dépendantes l'une de l'autre. Pas pratique...faut que je trouve un moyen de n'avoir qu'un identifiant à passer pour mes requêtes.

    a++

  4. #4
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    bha écris toi une fonction ^^

    au début de ta page :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $_SESSION['bddid'] =  mysql_connect($BDD_CONNECT, $BDD_LOGIN, $BDD_PASS); 
     
    function SuperQuery($requete, $bdd)
    {
          mysql_select_db($bdd, $_SESSION['bddid']);
          return mysql_query($requete);
    }

  5. #5
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    Ouais mais moi ça me gratte de devoir faire plusieurs mysql_select_db dans une mm page! lol (par une fonction ou non...)

    Il doit bien exister une fonction autre que mysql_query qui permet de passer l'identifiant sql que j'initialise dans mon fichier de conf de l'appli.

    Je chercherai demain au taff lol merci de tes réponses, de toute façon j'aurai pas le choix si mes recherches n'aboutissent pas, je devrais passer par un mysql_select_db à chaque requête.

    a++ ^^

  6. #6
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Je ne suis pas un grands maître du MySQL, mais je suis érudit de php.net auquel je n'hésite pas à poser mes questions quand besoin est...

    Je lui ai donc demander de m'invoquer la liste des fonction MySQL, et rien ne semble correspondre à ce que tu cherches...

  7. #7
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    bé oui j'ai déjà cherché dessus tu penses bien...
    mais j'ai déjà trouver réponse ailleurs que sur ce site pour d'autres problèmes....C'est une appli web assez solide que je dev et je veux être sûr d'avoir cherché partout vant de me lancer dans tel ou tel système!

    jva chercher jva chercher...

  8. #8
    Membre émérite
    Inscrit en
    Mai 2002
    Messages
    673
    Détails du profil
    Informations forums :
    Inscription : Mai 2002
    Messages : 673
    Par défaut
    Dis nous si tu trouves autre chose ! ça m'interesse !

  9. #9
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    ouais!

  10. #10
    Membre émérite Avatar de alain31tl
    Homme Profil pro
    Inscrit en
    Novembre 2005
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Novembre 2005
    Messages : 935
    Par défaut
    Salut

    Question joker, es-tu contraint justement d'utiliser 2 bases sql (ou plus) pour ton application?
    Je te pose la question car j'ai été également confronté à ce genre de souci alors que j'utilisais un plan ovh associé à plusieurs db.
    Finalement, j'ai tout migré vers une base sql unique gonflée par un sql plan m'autorisant un espace de travail plus confortable, et surtout pour ne pas me prendre la tête.

    J'en ai souvent parlé avec des collégues qui regrettent aussi le fait qu'on te balance des offres multi-mysql mais qui demeurent respectivement limitées en espace, alors qu'une offre avec une seule et unique base associée à un espace disque plus généreux ne pose plus de probléme.
    Ca se paye, c'est sûr... c'est commercial.

  11. #11
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    Salut, je vais prendre un exemple.

    Imagine une base de donnée terrifiante et gigantesque qui contient toutes les données de toutes les montres existantes (toutes marque ET versions confondues, des millions...) au monde. Un client (entreprise) passe un contrat avec toi et tu dois lui développer une appli web permettant aux clients finals (finaux? lol) de ce client d'accéder aux données correspondantes à leurs montre (vendues par l'entreprise...donc une certaine gamme) mais aussi de saisir des informations les concernant (client Et montre).

    Dans ce cas là qui ressemble au mien, je ne vais pas regrouper les deux bases car celle du client n'a rien à voir avec la base mondiale des montres. C'est une base destinée à la saisie d'informations volatiles. D'autant qu'il existe bon nombre d'autres clients qui ont leur appli perso plus ou moins différente mais qui ont besoin d'accéder à l'immense ressource (la grde base, une 50aines de tables sql).

    En somme, chaque client a sa propre base de données. Les clients et leurs besoins étant trop différents pour se permettre une DB unique pour tous.

    Voilà le pourquoi ^^

    a++

  12. #12
    Membre Expert Avatar de Djakisback
    Profil pro
    Inscrit en
    Février 2005
    Messages
    2 023
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 2 023
    Par défaut
    Salut,
    2 questions :
    - est-ce que tu précises ta base de données dans tes requêtes ? (SELECT * FROM bdd.table)
    - est-ce que tu as pas une offre limitée à une connexion simultanée :/ ?

    Bye

    [edit]
    Sur http://www.php.net/manual/fr/functio...-select-db.php ca ressemble à ton problème.

    Be carefull if you are using two databases on the same server at the same time. By default mysql_connect returns the same connection ID for multiple calls with the same server parameters, which means if you do

    <?php
    $db1 = mysql_connect(...stuff...);
    $db2 = mysql_connect(...stuff...);
    mysql_select_db('db1', $db1);
    mysql_select_db('db2', $db2);
    ?>

    then $db1 will actually have selected the database 'db2', because the second call to mysql_connect just returned the already opened connection ID !

    You have two options here, eiher you have to call mysql_select_db before each query you do, or if you're using php4.2+ there is a parameter to mysql_connect to force the creation of a new link.
    [/edit]

  13. #13
    Membre éprouvé Avatar de speedev
    Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    1 051
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 051
    Par défaut
    Non je ne précise pas ma base de données à chaque requête... ça ferait un peu lourd dans le code et c'est pas mon habitude. Je préfèrerai tant pouvoir utiliser un identifiant de connexion.

    Sinon tous nos sites web sont hébergés chez nous, sur nos serveurs.

Discussions similaires

  1. Réponses: 2
    Dernier message: 24/10/2007, 20h26
  2. Utilisation d'Eclipse: Multiples Onglets
    Par Thorna dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 12/05/2007, 11h00
  3. Utiliser une sélection multiple comme critère de requête
    Par Sébastien Le Goyet dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 03/04/2007, 14h40
  4. BDD access utilisation simultanée ?
    Par boutts dans le forum Access
    Réponses: 14
    Dernier message: 03/01/2007, 19h19
  5. [Hibernate] utilisation de JNDI pour connexion MySql
    Par michaelbob dans le forum Hibernate
    Réponses: 1
    Dernier message: 14/03/2006, 16h08

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