2012-03-26 37 views
-4

我有一個名爲A的mysql數據庫。用php將一些數據從一個數據庫轉移到另一個數據庫?

我想獲取信息where country = usa(與美國約有40 000),我想插入到B數據庫。

我怎麼用ph​​p做到這一點?

在此先感謝

+4

如果您向我們顯示您當前的非工作代碼,我們可以幫助您解決問題。如果你正在尋找講義或教程,你會在其他地方變得更好,因爲這不是它的地方。 – 2012-03-26 06:15:20

+0

我沒有代碼,對不起 – 2012-03-26 06:18:11

回答

2

是的,你可以慢慢用PHP做到這一點:

<?php 
$data = mysql_query("SELECT x,y,z FROM db1.table WHERE where country='usa'"); 
$values = Array(); 
while ($row = mysql_fetch_assoc($data)) { 
    // do some work... 
    $row['x'] = mysql_real_escape_string($row['x']); 
    $row['y'] = mysql_real_escape_string($row['y']); 
    $row['z'] = mysql_real_escape_string($row['z']); 
    $values[] = "('$row[x]','$row[y]','$row[z]')"; 
} 
mysql_query("insert into db2.table (x,y,z) VALUES ".implode(',',$values).""); 
?> 

但我更喜歡更快,simplier MySQL的INSERT ... SELECT語句,直接在MySQL控制檯:

INSERT INTO db2.table (x,y,z) SELECT x,y,z FROM db1.table WHERE country='usa'; 
+0

您的mysql控制檯解決方案很棒,但如何選擇所有行? – 2012-03-26 06:31:21

+0

@samim basar:INSERT INTO db2.table SELECT * FROM db1.table WHERE country ='usa'; – 2012-03-26 06:39:39

0
<?php 
    $query = "SELECT * FROM database1.table_name WHERE country = 'USA'"; 
    $result2 = mysql_query($query); 
    while($row = mysql_fetch_assoc($result)){ 
    //assigning of value to variable 
    $val1 = $row['field_name1']; 
    $val2 = $row['filed_name2']; 
    //and so on 

    $query2 = "INSERT INTO database2.table_name (field1,field2,.....) VALUES ('$val1', 'val2',....)" 
    $result2 = mysql_query($query2); 
    } 


?> 
+2

他問的是不同的數據庫,而不是表格。而且我知道這不關我的事,而且你在這裏是新的,但請不要在提出問題之前提供那些不介意放棄最小努力的人。 – 2012-03-26 06:28:35

+0

@Madmartigan:對不起,我可以編輯我的解決方案,但首先我要感謝您的建議,您的權利也許他應該先試着解決問題,然後再問問題。 ;) – SuperNoob 2012-03-26 06:35:19

+0

你的代碼示例只會插入最後一行。 – 2012-03-26 06:41:28

0

您應該能夠將數據庫模式和數據轉儲爲大型SQL文件,並且j ust在不同的數據庫上運行SQL ...如果你有phpMyAdmin,根本不需要PHP腳本。只需使用主數據庫屏幕上的操作選項卡即可。在源上導出數據庫,將其導入目標。

相關問題