小编典典

如何在一个网页上连接多个 MySQL 数据库?

all

我的信息分布在几个数据库中,并希望使用 PHP 将所有信息放到一个网页上。我想知道如何在一个 PHP 网页上连接到多个数据库。

我知道如何使用以下方法连接到单个数据库:

$dbh = mysql_connect($hostname, $username, $password) 
        or die("Unable to connect to MySQL");

但是,我可以只使用多个“mysql_connect”命令来打开其他数据库吗?如果我确实连接了多个数据库,PHP 将如何知道我想要从哪个数据库中提取信息。


阅读 69

收藏
2022-08-05

共1个答案

小编典典

警告: 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 而不是较旧的扩展,这是一种更好的方法。

2022-08-05