francoisch Posté 26 Septembre 2009 Partager Posté 26 Septembre 2009 Bonjour Jusquici les tables MySql de mon site étaient hébergées dans une seule base. Je viens de créer une deuxième base et dy mettre quelques tables. Je tombe sur le problème suivant : Jétablis une connexion sur la base 1 avec mon module connexion.php Je men sers pour lire / écrire Jétablis une connexion sur la base 2 avec le même module connexion.php Jessaie décrire mais lécriture est tenté par MySql sur la base 1 Je crois comprendre de cette expérience quune connexion ne peut être utilisée quavec une seule base. Si cest bien vrai, que puis je faire ? Existe-t-il un moyen pour rompre une connexion, quitte à en établir une nouvelle à chaque fois ? Ou bien dois je plutôt établir autant de connexions que de bases ? Par avance merci de votre aide. Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
SStephane Posté 26 Septembre 2009 Partager Posté 26 Septembre 2009 Hello, Pour te le dire, le mieux serait de nous donner tes sources. Pour clore ta connexion : mysql_close() mais ça ne répondra pas à ta question puisque tu utilises un niveau d'abstraction différent (ce qui est le mieux, sans aucun doute). Tes bases 1&2 sont sur la même machine ? Il me vient comme un doute sur ta question : mysql_select_db("base_en_question") Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 26 Septembre 2009 Auteur Partager Posté 26 Septembre 2009 bonjour et merci de ta réponse. Pour répondre à ta question, mes 2 bases sont chez le même hébergeur mais pas sur le même Sql serveur. Francois Lien vers le commentaire Partager sur d’autres sites More sharing options...
SStephane Posté 26 Septembre 2009 Partager Posté 26 Septembre 2009 Ils sont donc sur 2 machines différentes, il te faudra donc 2 connexions ! Il est inutile de fermer la première à priori, à moins que la méthode que tu utilises pour te connecter t'y force. Lien vers le commentaire Partager sur d’autres sites More sharing options...
petit-ourson Posté 26 Septembre 2009 Partager Posté 26 Septembre 2009 En fait, tu peux très bien te connecter (via mysql_connect) à un serveur de base de données sans pour autant sélectionner (via mysql_select_db) une base de données. Si l'utilisateur que tu connectes à les droits sur les deux bases à utiliser, tu peux utiliser tes deux base de données dans une même requête (ou pas) en préfixant tes tables avec le nom de la base de données contenant ces tables. Exemple : SELECT * FROM <mabase1>.<matable1>;SELECT * FROM <mabase2>.<matable2>;SELECT * FROM <mabase1>.<matable1> A, <mabase2>.<matable2> B WHERE A.<champ4> = B.<champ8> AND A.<champ3> = <condition1>; Dans ton cas, dans la mesure ou tu as deux serveurs de base de données distincts, tu es obligé de te connecter 1 fois sur chacun de tes serveurs (et tu ne pourras donc pas utiliser des requêtes avec des jointures sur les deux serveurs). Lien vers le commentaire Partager sur d’autres sites More sharing options...
francoisch Posté 27 Septembre 2009 Auteur Partager Posté 27 Septembre 2009 Merci de vos réponses, j'ai appris quelquechose de nouveau aujourd'hui. Je vais donc faire deux connexions puisque mes bases sont sur deux serveurs différents. Je garde le préfixage pour un autre cas si j'avais d'autres bases sur le même serveur. Merci encore de votre aide. Frncois Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant