Attention: les mysql_xx
fonctions sont obsolètes depuis php 5.5 et supprimées depuis php 7.0 (voir http://php.net/manual/intro.mysql.php ), utilisez des mysqli_xx
fonctions ou voyez la réponse ci-dessous de @Troelskn
Vous pouvez faire plusieurs appels à mysql_connect()
, mais si les paramètres sont les mêmes, vous devez passer true pour le $new_link
paramètre ' ' (quatrième), sinon la même connexion est réutilisée. Par exemple:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Ensuite, pour interroger la base de données 1, passez le premier identifiant de lien:
mysql_query('select * from tablename', $dbh1);
et pour la base de données 2, passez la seconde:
mysql_query('select * from tablename', $dbh2);
Si vous ne passez pas d'identifiant de lien, la dernière connexion créée est utilisée (dans ce cas, celle représentée par $dbh2
) par exemple:
mysql_query('select * from tablename');
Autres options
Si l'utilisateur MySQL a accès aux deux bases de données et qu'elles sont sur le même hôte (c'est-à-dire que les deux bases de données sont accessibles à partir de la même connexion), vous pouvez:
- Gardez une connexion ouverte et appelez
mysql_select_db()
pour permuter si nécessaire. Je ne suis pas sûr que ce soit une solution propre et vous pourriez finir par interroger la mauvaise base de données.
- Spécifiez le nom de la base de données lorsque vous référencez des tables dans vos requêtes (par exemple
SELECT * FROM database2.tablename
). Cela sera probablement difficile à mettre en œuvre.
Veuillez également lire la réponse de troelskn car c'est une meilleure approche si vous êtes capable d'utiliser PDO plutôt que les anciennes extensions.