注意:mysql_xx
函数已自php 5.5起被弃用,自php 7.0起被删除(请参阅http://php.net/manual/intro.mysql.php),请使用mysqli_xx
函数或参考@Troelskn的答案。
您可以多次调用mysql_connect()
,但如果参数相同,则需要为'$new_link
'(第四个)参数传递true,否则将重用相同的连接。例如:
$dbh1 = mysql_connect($hostname, $username, $password);
$dbh2 = mysql_connect($hostname, $username, $password, true);
mysql_select_db('database1', $dbh1);
mysql_select_db('database2', $dbh2);
然后要查询数据库1,请传递第一个链接标识符:
mysql_query('select * from tablename', $dbh1);
并且对于数据库 2,通过第二个:
mysql_query('select * from tablename', $dbh2);
如果您没有传递链接标识符,则会使用上次创建的连接(在这种情况下,由
$dbh2
表示)例如:
mysql_query('select * from tablename');
其他选项
如果MySQL用户可以访问两个数据库,并且它们在同一主机上(即从同一个连接可以访问两个DB),你可以:
- 保持一个连接打开,并在必要时调用
mysql_select_db()
进行切换。我不确定这是否是一个干净的解决方案,你可能会查询错误的数据库。
- 在查询中引用表时指定数据库名称(例如:
SELECT * FROM database2.tablename
)。这可能很麻烦。
此外,请阅读troelskn的答案,因为如果您能够使用PDO而不是较旧的扩展名,则这是更好的方法。
$dbh2
?更改所有查询以使此方法起作用可能需要数天时间,仅查找所有查询就够了... - ThomasK