在mysql连接之间交替

时间:2012-12-12 17:32:48

标签: php mysql

我一直试图解决这个问题几天了。我有4个数据库需要连接。我试图在连接之间交替,但它不会让我。它总是需要最后一次连接。

$link = mysql_connect("localhost","root",""); 
mysql_select_db("front",$link); 
$link2 = mysql_connect("mysite.com","user","2012");
mysql_select_db("db1",$link2);
$link3 = mysql_connect("mysite.com","user","2012");
mysql_select_db("appsdb",$link3);
$link4 = mysql_connect("mysite.com","user","2012", TRUE);
mysql_select_db("storagedb",$link4);

我需要做什么?

这可行,但耗时太长

$link = mysql_connect("localhost","root",""); 
mysql_select_db("front",$link); 
$link2 = mysql_connect("mysite.com","user","2012",true);
mysql_select_db("db1",$link2);
$link3 = mysql_connect("mysite.com","user","2012",true);
mysql_select_db("appsdb",$link3);
$link4 = mysql_connect("mysite.com","user","2012", true);
mysql_select_db("storagedb",$link4);

是否可以完全分离连接但仍然在查询中使用$ link,$ link2,$ link3,$ link4?我不认为保持所有连接开放是有效的。

4 个答案:

答案 0 :(得分:3)

我不会像其他人一样评论使用mysqli,我想从所有这些评论中,你已经意识到你应该切换,所以我只会回答答案,也许它可以帮助其他人,只是可以'因某种原因升级php。

函数mysql_connect创建或重用连接,因此如果使用相同的凭据创建到同一服务器的多个连接,则只能获得一个连接。

如果您需要强制mysql_connect创建新连接,则需要将new_link参数指定为true,如下所示:

$link = mysql_connect("localhost","root","",true); 
mysql_select_db("front",$link); 
$link2 = mysql_connect("mysite.com","user","2012",true);
mysql_select_db("db1",$link2);
$link3 = mysql_connect("mysite.com","user","2012",true);
mysql_select_db("appsdb",$link3);
$link4 = mysql_connect("mysite.com","user","2012", true);
mysql_select_db("storagedb",$link4);

您可以在此处找到更多信息:http://php.net/manual/es/function.mysql-connect.php

答案 1 :(得分:0)

这个问题在这个网站上很猖獗,我想你会搜索this这样的问题以获得更多帮助。

$db_conn = connect_db(host, user, pwd);
mysql_select_db('existing_db', $db_conn);
 -- do selects and scrub data --
mysql_select_db('new_db', $db_conn);
-- insert the required data --

完整链接Here

答案 2 :(得分:0)

只需将“,$ link”添加到查询语句的末尾...

mysql_query("SELECT * FROM table", $link); 

答案 3 :(得分:0)

为什么不使用持久连接mysql_pconnect,但考虑切换到pdomysqlnd
(持久连接的对应物 1 2