从一个php文件访问两个mysql数据库

时间:2013-05-09 00:07:52

标签: php mysql

这就是我目前所做的事情: 我创建了2个连接:

$con_1 = mysql_connect('xxxxxxxx', 'db1', 'xxxxx') or die(mysql_error());
$con_2 = mysql_connect('xxxxxxxx', 'db2', 'xxxxx') or die(mysql_error());

在每个查询之前,我做

mysql_select_db('db1', $con_1);
... query

但显然这不起作用。 mysql_query也要求我传入$ con_1。所以如果我必须传递连接,我可以跳过一起调用mysql_select_db的步骤吗?

或者,我可以在开始时调用每个mysql_select_db,稍后当我调用查询函数时,只需传入$ con_x,而不必担心选择db?

2 个答案:

答案 0 :(得分:1)

数据库选择与连接资源相关联。因此,您可以为每个连接选择一次。

如果您根本没有调用mysql_select_db,那么您的所有查询都需要在所有表之前指定显式数据库前缀,例如: select * from db1.table ...

答案 1 :(得分:1)

  

所以如果我必须传入连接,我可以跳过一起调用mysql_select_db的步骤吗?

建立连接后,您必须将称为


但是,就像@Barmar在他的回答中提到的那样,你甚至不需要打电话给mysql_select_db()而你也不需要有两个单独的连接。您只需在查询中使用完全限定的表名称,例如dbnametablename。检查此示例:

$con = mysql_connect(...);

mysql_query('SELECT * FROM `db1`.`foo`');
mysql_query('SELECT * FROM `db2`.`bar`');