2012-11-20 45 views

回答

0

可以通過插入選擇組合

考慮以下示例。

INSERT INTO tbl_temp2 (fld_id) 
SELECT tbl_temp1.fld_order_id 
FROM tbl_temp1 WHERE tbl_temp1.fld_order_id > 100; 
+0

OP討論了2個不同的數據庫服務器。這怎麼可能是被接受的答案? –

2

如果數據庫在同一臺主機上,並且用戶同時訪問,您可以輕鬆地交換數據是這樣的:

INSERT INTO database2.table1 (*fields*) 
SELECT *fields* FROM database1.table1 

通過字段列表中的替換領域桌子。 請注意,此查詢將抓取整個表並可能需要一些時間。

如果數據庫在不同的主機或因爲你不能只用一個連接連接到兩個其他原因,這樣做:

$dbh1 = mysql_connect($hostname, $username, $password); 
$dbh2 = mysql_connect($hostname, $username, $password, true); 
//the fourth parameter makes sure that a new link is opened as if the parameters are the same, php will grab the old connection instead of creating one. 

mysql_select_db('database1', $dbh1); 
mysql_select_db('database2', $dbh2); 

然後查詢數據庫1,這樣做:

mysql_query('select * from tablename', $dbh1); 

和數據庫2:

mysql_query('select * from tablename', $dbh2); 

...或者在PDO ...

$database1 = new PDO('mysql:dbname=database1name;host=127.0.0.1', 'username', 'password'); 
$database2 = new PDO('mysql:dbname=database2name;host=127.0.0.1', 'username', 'password'); 
$result1 = $database1->query("select * from tablename"); 
$result2 = $database2->query("select * from tablename"); 
+1

請使用'PDO'而不是mysql_方法。 – RTB

+0

您對兩個數據庫使用了「select」查詢! –

+0

你是對的,這裏的目標是顯示可以連接到2個數據庫,並在相同的腳本中查詢它們,即使它們很遙遠。我將更新的邏輯留給了OP。 – Salketer

相關問題