2013-05-09 39 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`');