PHP mysqli在同一页面上的多个数据库

时间:2016-05-19 09:11:55

标签: php mysql mysqli

我的代码是这样的......

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$link) {
    die('Could not connect: ' . mysqli_error($link));
}
$db_selected = mysqli_select_db($link, DB_NAME);
if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error($link));
}

//use $link works fine
mysqli_close($link);


$link2 = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if (!$link2) {
    die('Could not connect: ' . mysqli_error($link2));
}
$db_selected = mysqli_select_db($link2, DB_NAME);
if (!$db_selected) {
    die('Can\'t use ' . DB_NAME . ': ' . mysqli_error($link2));
}

if (!mysqli_query($link2, $sql)) {
    die('Error ' . mysqli_error($link2));
} 

我收到类似

的错误
  

$ link.TableNameFromLink2不存在

所以基本上即使我关闭第一个链接并打开一个新链接,它仍然默认为第一个链接尝试连接到我希望存在于第二个链接中的表...我不是得到它..它杀了我:(

1 个答案:

答案 0 :(得分:0)

$link2中,您使用的CONSTANT数据库信息与$link中使用的信息相同 您必须使用另一个CONSTANT来定义另一个DB详细信息。 像

define('DB_USER','user1');
define('DB_PASSWORD','password1');
define('DB_NAME','dbname1');
define('DB_HOST','localhost');
// for 2nd db ( if username and password is same then no need to define DB_USER1 and DB_PASSWORD1)

define('DB_USER1','user2');
define('DB_PASSWORD1','password2');
define('DB_NAME1','dbname2');

$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);

$link2 = mysqli_connect(DB_HOST, DB_USER1, DB_PASSWORD1, DB_NAME1);