1

这就是我目前所做的:我创建了 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吗?

4

2 回答 2

1

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

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

于 2013-05-09T00:16:24.640 回答
1

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

建立连接后,您必须调用一次


但是,就像@Barmar 在他的回答中提到的那样,您甚至不需要打电话mysql_select_db(),也不需要为此建立两个单独的连接。您只需在查询中使用完全限定的表名,例如dbname. tablename. 检查这个例子:

$con = mysql_connect(...);

mysql_query('SELECT * FROM `db1`.`foo`');
mysql_query('SELECT * FROM `db2`.`bar`');
于 2013-05-09T00:16:34.780 回答