2009-11-20 6 views
0

J'ai 2 bases de données. Base de données des utilisateurs et base de données des achats. Chaque base de données a un utilisateur et un mot de passe différents.Comment connecter 2 bases de données en php et mysql?

Si je veux exécuter une requête pour appeler les deux bases de données. Comment connecter les bases de données?

$db = mysql_select_db(??????); 
+0

@mysqllearner: J'ai répondu que dans votre question précédente! – RageZ

+0

@mysqllearner: aussi vous devez accepter la réponse des gens, voir la coche sur le côté gauche des réponses – RageZ

+0

Merci RageZ, j'ai posté cette question ici pour éviter 2 questions sur 1 problème de poste. J'espère que vous pouvez comprendre :) – mysqllearner

Répondre

1

Vous n'avez pas à vous préoccuper de la base de données que vous sélectionnez puisque vous donnez à MySQL le nom de la base de données dans les requêtes.

i.e.

SELECT * FROM db.table, db2.table 

Donc quelle que soit la base de données que vous avez sélectionné ne changera rien.

+0

mais chaque base de données a un utilisateur et un mot de passe différents, comment résoudre ce problème? Contactez mon fournisseur d'hébergement Web, demandez-leur de me donner un super administrateur qui peut accéder à toutes les bases de données que je crée? – mysqllearner

+0

vous devez vous assurer auprès de votre hébergeur, que vos deux bases de données se trouvent sur le même serveur, vous devez également leur demander de vous donner un utilisateur qui a accès aux deux DB. – RageZ

+0

dernier commentaire Je voudrais obtenir ces deux bases de données en un seul endroit parce que vous allez avoir des problèmes, je pense. – RageZ

0

Appelez mysql_connect() deux fois et stockez le résultat dans une variable. cette variable peut ensuite être envoyée à presque tous les appels mysql_ * en php pour vous dire de laquelle vous parlez deux. Regardez le deuxième argument de mysql_select_db() et vous comprendrez. De cette façon, vous ne pourrez bien sûr pas les utiliser tous les deux dans la même requête, mais à moins que vos utilisateurs n'aient accordé l'accès aux deux, je pense que c'est votre seule option.

1
$db1 = mysql_connect($host1, $user1, $pass1); 
mysql_select_db($db1, 'database1'); 

$db2 = mysql_connect($host2, $user2, $pass1); 
mysql_select_db($db2, 'database2'); 

$query = "SELECT * FROM test"; 

mysql_query($db1, $query); 
mysql_query($db2, $query); 

EDIT: Ok, maintenant je comprends le problème (lire les commentaires aux autres réponses): Si vous ne disposez pas de l'autorisation, vous ne serez pas en mesure de faire une déclaration qui relie 2 bases de données. Si vous avez un utilisateur qui a la permission de choisir parmi les deux bases de données, il devrait être possible par

SELECT * FROM db1.table, db2.table 
+0

J'essaie d'accorder tous les privilèges à 1 utilisateur. Vous avez un problème pour trouver le mot de passe root pour activer la console mysql. Grrr ... – mysqllearner

Questions connexes