我在同一服务器上有两个具有相同用户名和密码的数据库。现在,我仅连接到一个数据库,但我想同时连接到两个数据库。

现在,这是我的代码,仅连接到一个数据库:

connect1.php

<?
$servername='localhost';

$dbusername='user';
$dbpassword='pass';

$dbname1='db1';
$dbname2='db2';

$link1 = connecttodb($servername,$dbname1,$dbusername,$dbpassword);
$link2 = connecttodb($servername,$dbname2,$dbusername,$dbpassword);

function connecttodb($servername,$dbname,$dbusername,$dbpassword)
{
    $link=mysql_connect ("$servername","$dbusername","$dbpassword",TRUE);
    if(!$link){die("Could not connect to MySQL");}
    mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
    return $link;
}
    ?>


我用以下代码在result.php中显示结果:

<?
require "connect1.php";

$q=mysql_query("select * from table1 where username='test' order by id",link1);

while($nt=mysql_fetch_array($q)){
echo "$nt[location]";
}

?>


我想在result.php中显示类似的数据,但是连接到db2

我怎样才能做到这一点?谢谢!

最佳答案

而不是只有一个全局$ link变量,您需要两个:

$link1 = connecttodb($servername1,$dbname1,$dbusername1,$dbpassword1);
$link2 = connecttodb($servername2,$dbname2,$dbusername2,$dbpassword2);


当然,将connectodb()更改为:

function connecttodb($servername,$dbname,$dbuser,$dbpassword)
{
    $link=mysql_connect ("$servername","$dbuser","$dbpassword",TRUE);
    if(!$link){die("Could not connect to MySQL");}
    mysql_select_db("$dbname",$link) or die ("could not open db".mysql_error());
    return $link;
}


请注意,我在mysql_connect中添加了第四个参数,对new_link参数声明为TRUE(仅当两个数据库位于同一服务器上时才需要)。

然后,对于每个查询,您必须根据要查询的数据库指定相应的链接变量($ link1或$ link2)。

关于php - 两个数据库连接:php + mysql,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8629095/

10-12 21:49
查看更多