可能重复:
如何连接到多个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,这是否会影响调用它两次在同一页面上? 此外,我必须调用第二个之前关闭的第一个连接?
你需要存储在单独的变量数据库连接链接。 例如
$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
你需要从存储的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);
是,你怎么办呢?
这将有两个打开的连接离开你的脚本不同的主机,直到它结束。
您可以通过调用重用这两种连接mysql_pconnect
一次。
请注意,我用pconnect
,这是否会影响调用它两次在同一页面上?
从文档 :
该功能将首先尝试找到一个(永久)链接,该链接已经与同一主机,用户名和密码打开
因为你的主机不同,会有两种不同的连接
此外,我必须调用第二个之前关闭的第一个连接?
你可以没有明确关闭与打开的连接mysql_pconnect
。
你做的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
明确,所以你很清楚你要连接到什么。