如何连接到多个数据库在一个单一的PHP页面? [重复](How to connect to mu

2019-08-17 15:27发布

可能重复:
如何连接到多个MySQL数据库单个网页上?

如果我想连接到1分贝做一些查询,再后来做从另一个DB另一个查询。 我该怎么做? 难道我只是

 mysql_pconnect("host:3306", "user", "password") or die(mysql_error());
 mysql_select_db("Test") or die(mysql_error());

//do some query

 mysql_pconnect("host2:3306", "user", "password") or die(mysql_error());
 mysql_select_db("Test") or die(mysql_error());

//do another query

是,你怎么办呢? 一对夫妇的问题。 请注意,我用pconnect,这是否会影响调用它两次在同一页面上? 此外,我必须调用第二个之前关闭的第一个连接?

Answer 1:

你需要存储在单独的变量数据库连接链接。 例如

 $connection_1 = mysql_connect("host:3306", "user", "password") or die(mysql_error());
 mysql_select_db("Test", $connection_1) or die(mysql_error());

 $connection_2 = mysql_pconnect("host2:3306", "user", "password") or die(mysql_error());
 mysql_select_db("Test", $connection_2) or die(mysql_error());

 mysql_query("your query", $connection_1); // run query for first connection
 mysql_query("your query", $connection_2); // run query for second connection


Answer 2:

你需要从存储的mysql_connect返回的资源,做mysql_select_db时使用它。

$res1 = mysql_pconnect(...);
mysql_select_db("Test", $res1);

$res2 = mysql_pconnect(...);
mysql_select_db("Test", $res2);

然后查询相应的数据库时,使用$ RES1或RES2 $。

mysql_query("select * from test_table", $res1);

mysql_query("select * from test_table", $res2);


Answer 3:

是,你怎么办呢?

这将有两个打开的连接离开你的脚本不同的主机,直到它结束。

您可以通过调用重用这两种连接mysql_pconnect一次。

请注意,我用pconnect ,这是否会影响调用它两次在同一页面上?

文档

该功能将首先尝试找到一个(永久)链接,该链接已经与同一主机,用户名和密码打开

因为你的主机不同,会有两种不同的连接

此外,我必须调用第二个之前关闭的第一个连接?

你可以没有明确关闭与打开的连接mysql_pconnect



Answer 4:

你做的RTM吧,因为你不使用$link_identifier

http://us.php.net/mysql_select_db :

bool mysql_select_db ( string $database_name [, resource $link_identifier ] )

设置一个与指定的连接标识符关联的服务器上的当前活动数据库。 到的mysql_query每个后续的调用()将在活动数据库上进行。

参数

database_name是要选择的数据库的名称。

link_identifier MySQL的连接。

如果没有指定链路标识符,则假定由mysql_connect()打开的最后一个环节。 如果没有找到这样的链接,它会尝试创建一个犹如mysql_connect()函数是不带参数调用。 如果发现或没有建立连接时,会产生一个E_WARNING级别的错误。

只要你有使用pconnect,您共享的连接(不仅在页面中,但可能与其他网页) - 你的情况在这里,不这样做。 你想孤立的联系,因此,分离交易。 你或许应该考虑mysql_connect代替,并明确使用new_link参数。 最后,使用$link_identifier明确,所以你很清楚你要连接到什么。



文章来源: How to connect to multiple databases in a single PHP page? [duplicate]