0

这几天我一直在想办法解决这个问题。我有 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

4 回答 4

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

于 2012-12-12T18:07:13.557 回答
0

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

$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 --

完整链接在这里

于 2012-12-12T17:35:58.153 回答
0

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

mysql_query("SELECT * FROM table", $link); 
于 2012-12-12T17:41:26.640 回答
0

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

于 2012-12-22T13:51:11.770 回答