Upozornění: mysql_xx
funkce jsou od php 5.5 zastaralé a od php 7.0 odstraněny (viz http://php.net/ manual/intro.mysql.php
), použijte mysqli_xx
funkce nebo viz odpověď níže od @Troelskn
Můžete provést více volání mysql_connect()
, ale pokud jsou parametry stejné, musíte předat hodnotu true pro '$new_link
' (čtvrtý) parametr, jinak se znovu použije stejné připojení. Například:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
Poté pro dotaz na databázi 1 předejte první identifikátor odkazu:
mysql_query('select * from tablename', $dbh1);
a pro databázi 2 předejte druhou:
mysql_query('select * from tablename', $dbh2);
Pokud nezadáte identifikátor odkazu, použije se poslední vytvořené připojení (v tomto případě to, které představuje $dbh2
) např.:
mysql_query('select * from tablename');
Další možnosti
Pokud má uživatel MySQL přístup k oběma databázím a jsou na stejném hostiteli (tj. obě DB jsou přístupné ze stejného připojení), můžete:
- Jedno připojení nechte otevřené a zavolejte
mysql_select_db()
podle potřeby mezi nimi přepínat. Nejsem si jistý, že se jedná o čisté řešení a mohli byste skončit dotazem na nesprávnou databázi. - Při odkazování na tabulky v dotazech zadejte název databáze (např.
SELECT * FROM database2.tablename
). To bude pravděpodobně obtížné implementovat.
Přečtěte si prosím také odpověď troelskna, protože to je lepší přístup, pokud jste schopni používat PDO spíše než starší rozšíření.