使用php / mysql中的多个数据库

时间:2009-11-17 16:50:57

标签: php mysql database

我正在开发一个需要我使用多个数据库连接的项目。根据我的阅读,我应该能够在查询本身的连接之间切换,例如:

mysql_query("SELECT * FROM user_types", $db_core)or die(mysql_error());

但我收到错误:

Table 'db_company.user_types' doesn't exist

所以我可以看到它正在查看不正确的数据库,它抓住了最后一个mysql_select_db

我不想每次都重新选择数据库,但如果这是更好的方法,我可以。

我选择的数据库如下:

<?
$currentpage = $_SERVER["REQUEST_URI"];
//Core DB
$db_core_host = "localhost";
$db_core_username = "root";
$db_core_password = "";
$db_core_name = "db_main";
//
$db_core = mysql_connect($db_core_host,$db_core_username,$db_core_password);
mysql_select_db($db_core_name, $db_core)or die(mysql_error());
//Company DB
$db_company_host = $company['db_server'];
$db_company_username = $company['db_username'];
$db_company_password = $company['db_password'];
$db_company_name = $company['db_name'];
//
$db_company = mysql_connect($db_company_host,$db_company_username,$db_company_password);
mysql_select_db($db_company_name, $db_company)or die(mysql_error());
?>

不确定它是否有帮助,但当我回显任何一个数据库连接时,我得到资源ID#5

2 个答案:

答案 0 :(得分:4)

在查询中使用db.table语法:

mysql_query("SELECT * FROM databas_ename.table_name", $db_core) or die(mysql_error());

答案 1 :(得分:1)

当两个数据库位于同一台服务器上时,您的问题中的代码应该可用,外。看一下$new_link的{​​{1}}参数(参见docs here):如果使用相同的服务器/用户/通行证调用两次,则会重新使用连接 - 这会使最终,一个连接上的mysql_connect呼叫会影响另一个连接。

因此,如果您有两台不同的服务器,或将mysql_select_db设置为$new_link,那么您的代码应该有效。