Advarsel: mysql_xx
funktioner er forældet siden php 5.5 og fjernet siden php 7.0 (se http://php.net/ manual/intro.mysql.php
), brug mysqli_xx
funktioner eller se svaret nedenfor fra @Troelskn
Du kan foretage flere opkald til mysql_connect()
, men hvis parametrene er de samme, skal du angive true for '$new_link
' (fjerde) parameter, ellers genbruges den samme forbindelse. For eksempel:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
For at forespørge database 1 skal du sende den første link-id:
mysql_query('select * from tablename', $dbh1);
og for database 2 videregive den anden:
mysql_query('select * from tablename', $dbh2);
Hvis du ikke sender et link-id, bruges den sidst oprettede forbindelse (i dette tilfælde den, der er repræsenteret ved $dbh2
) f.eks.:
mysql_query('select * from tablename');
Andre muligheder
Hvis MySQL-brugeren har adgang til begge databaser, og de er på den samme vært (dvs. begge DB'er er tilgængelige fra den samme forbindelse), kan du:
- Hold én forbindelse åben, og ring til
mysql_select_db()
at skifte imellem efter behov. Jeg er ikke sikker på, at dette er en ren løsning, og du kan ende med at forespørge på den forkerte database. - Angiv databasenavnet, når du refererer til tabeller i dine forespørgsler (f.eks.
SELECT * FROM database2.tablename
). Dette vil sandsynligvis være en smerte at implementere.
Læs også troelskns svar, fordi det er en bedre tilgang, hvis du er i stand til at bruge PDO frem for de ældre udvidelser.