Connexion à plusieurs base de donnée
Résolu
Doy2
-
Doy2 -
Doy2 -
Bonjour,
Pour la réalisation d'un site pour le jeu "WoW" je suis confronté à un petit problème avec mes bases de données.
Ma base de données comporte 4 tables différente.
Table: Site, Auth, World et Characters.
Actuellement, je parvient à faire la connexion, mais je voudrais faire la connexion au table juste quand j'en ai besoin, puis de les refermée une fois fini, sans pour autant fermé la connexion MySQL.
Sachant que les tables peuvent vite devenir "lourde" je préfére eviter de les charger à l'ouverture du site.
Auriez-vous une idée, de comment je pourrait faire ?
Exemple:
Page Login:
Chargement de Auth
Connexion terminée
Fermeture de Auth
Merci
Pour la réalisation d'un site pour le jeu "WoW" je suis confronté à un petit problème avec mes bases de données.
Ma base de données comporte 4 tables différente.
Table: Site, Auth, World et Characters.
Actuellement, je parvient à faire la connexion, mais je voudrais faire la connexion au table juste quand j'en ai besoin, puis de les refermée une fois fini, sans pour autant fermé la connexion MySQL.
Sachant que les tables peuvent vite devenir "lourde" je préfére eviter de les charger à l'ouverture du site.
Auriez-vous une idée, de comment je pourrait faire ?
Exemple:
Page Login:
Chargement de Auth
Connexion terminée
Fermeture de Auth
Merci
A voir également:
- Connexion à plusieurs base de donnée
- Gmail connexion - Guide
- Base de registre - Guide
- Connexion chromecast - Guide
- Site inaccessible n'autorise pas la connexion - Guide
- Formules excel de base - Guide
En effectuant donc mysql_select_db($db) (4 fois) cela ne changera rien au chargement de la page sauf en cas de requête ?
En gros, ton connecteur est simplement un lien avec ta base. Lors du requêtage, celui ci s'effectue sur le serveur puis le résultat est envoyé au client (c'est à dire que jamais tu verra les trames de select puis leur résultats transiter, tu récupère les résultats, les stocks/affiche ou ce que tu veux puis tu les transmets au client.
Par contre avoir 4 connecteurs est très etranges du fait que ca soit la même base qui contienne tes tables ... un seul connecteur est suffisant, même si tu requête N tables. Il y aurai probablement des choses à (re) voir à ce niveau là, mais pour ca il me faudrai ton code pour que je puisse te conseiller/corriger.
naga
Ci-dessous le code utiliser pour la connexion
La fonction Connect,elle est appeler à chaque début de page, pour les autres, juste quand besoin
- le SGBD (le serveur mysql)
- les bases de données contenus dans le SGBD
- les tables contenus dans les bases de données
Seule la connexion au SGBD a un délai significatif, le fait de changer de base de données (avec mysql_select_db par exemple) n'as qu'un aucun impact minime sur les performances.
Comme indiqué par nagashima, si tes 4 tables sont bien contenus dans la même base de données, un seul mysql_select_db suffit.
Si tes tables sont effectivement dans des bases différentes, tu peux aussi créer tes requêtes en spécifiant le nom de la base devant le nom de la table (évitant ainsi l'utilisation de plusieurs mysql_select_db). Par exemple :
Mon SGBD contient deux bases :
- base 1 : contient table11 et table12
- base 2 : contient table21 et table 22
On peut écrire une requête directement comme ceci :
Pour faire court, disons que tu as 4 bases de données sur un même serveur (pour un même service mySQL). Tu auras donc un seul connecteur, ayant une base par défaut. Pour requêter sur une autre base, il suffit de l'indiquer avant le nom de la table, avec un "." (point) entre les deux.
Par exemple, on a :
base1 et base2 étant sur le même serveur.
J'aurai donc un connecteur :
J'ai donc paramétrer ma BASE1, me permettant d'effectuer des requêtes sur table1 et table2 sans préciser la base. Par exemple je pourrai faire :
si je souhaite effectuer une requête sur la table3, il me suffit de faire :
C'est à dire que le select_db permet juste de ne pas à avoir à toujours préciser la base. Dans le cas général les utilisateurs n'utiliseront qu'une base contenant n table => de cette manière il n'auront qu'à préciser les table (je pense que c'est ton cas).
Ensuite, il est je trouve plus simple et plus propre que tu ais un fichier gérant ta connexion, et que chaque page en ayant besoin l'incluent. Mais c'est juste un avis perso ^^