警告:函数从php 5.5开始被弃用,从php 7.0开始被删除(参见 http://php.net/manual/intro.mysql.php),使用函数或从@Troelsknmysql_xx
mysqli_xx
您可以对 进行多次调用,但如果参数相同,则需要为''(第四个)参数传递 true,否则将重用相同的连接。例如:mysql_connect()
$new_link
$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而不是较旧的扩展,这是一种更好的方法。