Advertencia: las mysql_xx
funciones están en desuso desde php 5.5 y se eliminan desde php 7.0 (consulte http://php.net/manual/intro.mysql.php ), use mysqli_xx
funciones o vea la respuesta a continuación de @Troelskn
Puede realizar varias llamadas a mysql_connect()
, pero si los parámetros son los mismos, debe pasar true para el '$new_link
parámetro ' (cuarto), de lo contrario, se reutilizará la misma conexión. Por ejemplo:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Luego, para consultar la base de datos 1, pase el primer identificador de enlace:
mysql_query('select * from tablename', $dbh1);
y para la base de datos 2 pase el segundo:
mysql_query('select * from tablename', $dbh2);
Si no pasa un identificador de enlace, se utiliza la última conexión creada (en este caso, la representada por $dbh2
), ejemplo:
mysql_query('select * from tablename');
Otras opciones
Si el usuario de MySQL tiene acceso a ambas bases de datos y están en el mismo host (es decir, se puede acceder a ambos DB desde la misma conexión), usted podría:
- Mantenga una conexión abierta y llame
mysql_select_db()
para intercambiar según sea necesario. No estoy seguro de que esta sea una solución limpia y podría terminar consultando la base de datos incorrecta.
- Especifique el nombre de la base de datos cuando haga referencia a tablas dentro de sus consultas (por ejemplo
SELECT * FROM database2.tablename
). Es probable que esto sea difícil de implementar.
También lea la respuesta de troelskn porque es un mejor enfoque si puede usar PDO en lugar de las extensiones más antiguas.