这就是我目前所做的事情: 我创建了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?
答案 0 :(得分:1)
数据库选择与连接资源相关联。因此,您可以为每个连接选择一次。
如果您根本没有调用mysql_select_db
,那么您的所有查询都需要在所有表之前指定显式数据库前缀,例如: select * from db1.table ...
。
答案 1 :(得分: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`');