警告: 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 用户可以访问两个数据库并且它们位于同一主机上(即两个数据库都可以从同一连接访问),您可以:
- 保持一个连接打开并在必要时调用
mysql_select_db() 进行交换。我不确定这是一个干净的解决方案,您最终可能会查询错误的数据库。
- 在查询中引用表时指定数据库名称(例如
SELECT * FROM database2.tablename)。这可能很难实施。
另外请阅读 troelskn 的回答,因为如果您能够使用 PDO 而不是较旧的扩展,这是一种更好的方法。