我正在开发一个需要我使用多个数据库连接的项目。根据我的阅读,我应该能够在查询本身的连接之间切换,例如:
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
答案 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
,那么您的代码应该有效。