Aviso:
mysql_xx
funções estão obsoletas desde o php 5.5 e removidas desde o php 7.0 (veja http://php.net/ manual/intro.mysql.php
), use mysqli_xx
funções ou veja a resposta abaixo de @Troelskn Você pode fazer várias chamadas para
mysql_connect()
, mas se os parâmetros forem os mesmos, você precisa passar true para o '$new_link
' (quarto) parâmetro, caso contrário, a mesma conexão é reutilizada. Por exemplo:$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Em seguida, para consultar o banco de dados 1, passe o primeiro identificador de link:
mysql_query('select * from tablename', $dbh1);
e para o banco de dados 2 passe o segundo:
mysql_query('select * from tablename', $dbh2);
Se você não passar um identificador de link então será usada a última conexão criada (neste caso a representada por
$dbh2
) por exemplo.:mysql_query('select * from tablename');
Outras opções
Se o usuário do MySQL tiver acesso aos dois bancos de dados e eles estiverem no mesmo host (ou seja, ambos os bancos de dados estiverem acessíveis a partir da mesma conexão), você poderá:
- Mantenha uma conexão aberta e chame
mysql_select_db()
para alternar conforme necessário. Não tenho certeza se esta é uma solução limpa e você pode acabar consultando o banco de dados errado. - Especifique o nome do banco de dados ao fazer referência a tabelas em suas consultas (por exemplo,
SELECT * FROM database2.tablename
). Isso provavelmente será difícil de implementar.
Leia também a resposta do troelskn porque essa é uma abordagem melhor se você puder usar o PDO em vez das extensões mais antigas.