Varning: mysql_xx
funktioner är utfasade sedan php 5.5 och borttagna sedan php 7.0 (se http://php.net/ manual/intro.mysql.php
), använd mysqli_xx
funktioner eller se svaret nedan från @Troelskn
Du kan ringa flera anrop till mysql_connect()
, men om parametrarna är desamma måste du ange true för '$new_link
' (fjärde) parametern, annars återanvänds samma anslutning. Till exempel:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
För att sedan fråga databas 1 skickar du den första länkidentifieraren:
mysql_query('select * from tablename', $dbh1);
och för databas 2 passera den andra:
mysql_query('select * from tablename', $dbh2);
Om du inte skickar en länkidentifierare används den senast skapade anslutningen (i detta fall den som representeras av $dbh2
) t.ex.:
mysql_query('select * from tablename');
Andra alternativ
Om MySQL-användaren har tillgång till båda databaserna och de finns på samma värd (dvs. båda DB:erna är tillgängliga från samma anslutning) kan du:
- Håll en anslutning öppen och ring
mysql_select_db()
att byta mellan vid behov. Jag är inte säker på att detta är en ren lösning och det kan sluta med att du frågar fel databas. - Ange databasnamnet när du refererar till tabeller i dina frågor (t.ex.
SELECT * FROM database2.tablename
). Detta är troligtvis jobbigt att implementera.
Läs också troelskns svar eftersom det är ett bättre tillvägagångssätt om du kan använda PDO snarare än de äldre tilläggen.