我正在尝试连接到第一个数据库以提取一些信息,然后使用该信息更新第二个数据库中的表。
但是,如果我不关闭连接,第二个查询总是尝试从第一个数据库中提取。如果我确实关闭了连接,那么它会给我一个套接字错误。
我正在使用 Drupal(所以我的第一个数据库是 Drupal 数据库)。我想从其中一个表中获取一个值,并在加载 3 个不同 PHP 页面中的 1 个时将其放入我的成员信息数据库中。
这可能吗?
是的,您可以创建多个连接。您需要将 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
.
您可以同时存储多个连接。
PHP 没有任何限制可以阻止您这样做。
如果您对特定代码有疑问,请更新问题。