如何在单个网页上连接到多个MySQL数据库?
我的信息分布在几个数据库中,并希望使用PHP将所有信息放到一个网页上。我想知道如何在单个PHP网页上连接到多个数据库。
我知道如何使用以下方法连接到单个数据库:
$dbh = mysql_connect($hostname, $username, $password) or die("Unable to connect to MySQL");
但是,我可以仅使用多个“ mysql_connect”命令来打开其他数据库吗?如果我确实连接了多个数据库,PHP如何知道要从哪个数据库中提取信息?
回答:
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而不是较旧的扩展名,那么这是一种更好的方法。
以上是 如何在单个网页上连接到多个MySQL数据库? 的全部内容, 来源链接: utcz.com/qa/409575.html