2013-05-09 100 views
1

这就是我现在做的事: 我创建2个连接:访问两个从一个php文件MySQL数据库

$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

为什么你仍然在使用'mysql_ *'函数? [他们已被弃用。](http://www.php.net/manual/en/faq.databases.php#faq.databases.mysql.deprecated) – esqew 2013-05-09 00:17:56

回答

1

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

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

+0

+1为第二段:) – hek2mgl 2013-05-09 00:17:25

1

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

你必须建立连接


但经过叫它一次,像@Barmar在他的回答中提到,你甚至不会需要调用mysql_select_db()和你不需要有两个独立的连接。您只需在查询中使用完全限定的表名,如dbnametablename。检查这个例子:

$con = mysql_connect(...); 

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