Attention : mysql_xx
les fonctions sont obsolètes depuis php 5.5 et supprimées depuis php 7.0 (voir http://php.net/ manuel/intro.mysql.php
), utilisez mysqli_xx
fonctions ou voir 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
' (quatrième) paramètre, 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 alors la dernière connexion créée est utilisée (en l'occurrence celle représentée par $dbh2
) ex :
mysql_query('select * from tablename');
Autres options
Si l'utilisateur MySQL a accès aux deux bases de données et qu'elles se trouvent sur le même hôte (c'est-à-dire que les deux bases de données sont accessibles depuis la même connexion), vous pouvez :
- Gardez une connexion ouverte et appelez
mysql_select_db()
pour permuter entre 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 risque d'être pénible à mettre en œuvre.
Veuillez également lire la réponse de troelskn, car il s'agit d'une meilleure approche si vous pouvez utiliser PDO plutôt que les anciennes extensions.