2012-07-09 72 views
2

我想連接到第一個數據庫來獲取一些信息,然後使用該信息更新第二個數據庫中的表。1個PHP文件可以連接到2個數據庫嗎?

但是,如果我不關閉連接,第二個查詢總是試圖從第一個數據庫中提取。如果我關閉連接,那麼它會給我一個套接字錯誤。

我正在使用Drupal(所以我的第一個數據庫是Drupal數據庫)。我想從其中一個表中獲取一個值,並在加載3個不同的PHP頁面中的1個時將其放入我的成員信息數據庫中。

這可能嗎?

+0

您可以使用mysql_update_db函數更新PHP中選定的數據庫。 http://php.net/manual/en/function.mysql-select-db.php – 2012-07-09 18:53:35

+2

@MSost請不要使用'mysql_',而應該使用'PDO'或'mysqli' – 2012-07-09 18:55:41

回答

1

您可以同時存儲多個連接。

PHP沒有限制會阻止你這樣做。

如果您遇到特定代碼的問題,請更新問題。

6

是的,您可以創建多個連接。您需要將mysql_query內部的鏈接指定爲第二個參數。

例子:

$link1 = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link1) { 
    die('Not connected : ' . mysql_error()); 
} 

// second foo1 
$db_selected_1 = mysql_select_db('foo1', $link1); 
if (!$db_selected_1) { 
    die ('Can\'t use foo : ' . mysql_error()); 
} 

$link2 = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link2) { 
    die('Not connected : ' . mysql_error()); 
} 

// select foo2 
$db_selected_2 = mysql_select_db('foo2', $link2); 
if (!$db_selected_2) { 
    die ('Can\'t use foo : ' . mysql_error()); 
} 

// query on first db 
mysql_query('SELECT * FROM 1 WHERE 1', $link1); 

// query on second db 
mysql_query('SELECT * FROM 1 WHERE 1', $link2); 

如果您有這兩個數據庫在同一臺服務器上一樣crendetials,你可能只是這樣做:

$link = mysql_connect('localhost', 'mysql_user', 'mysql_password'); 
if (!$link) { 
    die('Not connected : ' . mysql_error()); 
} 

// select foo1 
$db_selected = mysql_select_db('foo1', $link); 

// query on first db 
mysql_query('SELECT * FROM 1 WHERE 1', $link); 

// select foo2 
$db_selected = mysql_select_db('foo2', $link); 

// query on second db 
mysql_query('SELECT * FROM 1 WHERE 1', $link); 

然而,我建議你使用mysqli_甚至PDO

相關問題