2

我正在尝试连接到第一个数据库以提取一些信息,然后使用该信息更新第二个数据库中的表。

但是,如果我不关闭连接,第二个查询总是尝试从第一个数据库中提取。如果我确实关闭了连接,那么它会给我一个套接字错误。

我正在使用 Drupal(所以我的第一个数据库是 Drupal 数据库)。我想从其中一个表中获取一个值,并在加载 3 个不同 PHP 页面中的 1 个时将其放入我的成员信息数据库中。

这可能吗?

4

2 回答 2

6

是的,您可以创建多个连接。您需要将 mysql_query 中的链接指定为第二个参数。

例子 :

$link1 = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link1) {
    die('Not connected : ' . mysql_error());
}

// second foo1
$db_selected_1 = mysql_select_db('foo1', $link1);
if (!$db_selected_1) {
    die ('Can\'t use foo : ' . mysql_error());
}

$link2 = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link2) {
    die('Not connected : ' . mysql_error());
}

// select foo2
$db_selected_2 = mysql_select_db('foo2', $link2);
if (!$db_selected_2) {
    die ('Can\'t use foo : ' . mysql_error());
}

// query on first db
mysql_query('SELECT * FROM 1 WHERE 1', $link1);

// query on second db
mysql_query('SELECT * FROM 1 WHERE 1', $link2);

如果两个数据库在同一台服务器上具有相同的凭据,则可以这样做:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
    die('Not connected : ' . mysql_error());
}

// select foo1
$db_selected = mysql_select_db('foo1', $link);

// query on first db
mysql_query('SELECT * FROM 1 WHERE 1', $link);

// select foo2
$db_selected = mysql_select_db('foo2', $link);

// query on second db
mysql_query('SELECT * FROM 1 WHERE 1', $link);

但是,我建议您使用mysqli_或什至PDO.

于 2012-07-09T18:58:22.027 回答
1

您可以同时存储多个连接。

PHP 没有任何限制可以阻止您这样做。

如果您对特定代码有疑问,请更新问题。

于 2012-07-09T18:53:38.987 回答