寫入的欄位可依序指定內容..
例如...
A資料庫的資料表A的欄位分別是 A1 A2 A3 A4 A5 A6 A7
B資料庫的資料表B的欄位分別是 B1 B2 B3
假設要把 資料表A的 A3 A6 A7 欄位內容分別撈到資料表B的 B1 B2 B3
可以這樣寫..
INSERT INTO B資料庫.資料表B SELECT A3,A6,A7 FROM A資料庫.資料表A WHERE 條件..
謝謝您的回履~~請問你怎麼處理多資料庫連線的問題?
因為從資料庫撈資料時需要設定與資料庫的連線,如下,
我的問題是,在query的時候,如何在php裡面設定兩個database的連線問題。
$link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
一般而言,兩個資料庫如果是建在同一台機器上,當連線完成後,就可以直接對兩個資料庫進行操作,只要語法上有明確的說明是對哪個資料庫的哪個資料表動作,就可以完成請求...
例如要把三個不同的 database 中的資料表合併查詢...
SELECT * FROM db_a.table_a LEFT JOIN db_b.table_b USING(id) LEFT JOIN db_c.table_c USING(id) WHERE id=1;
像這樣也是可行的...
所以連線的動作是對機器連線,然後資料庫再依照語法完成請求的動作..
除非你的資料庫分別建在不同的機器上,那就必須個別連線了..
個別連線的話..通常使用物件的方式會比較好處理..
已經很久沒使用 mysql_connect() 這一類 php 的 MySQL 函式庫了..
建議可以改用PDO (PHP Data Object)會更方便些..
直接到 PHP 原文官網搜尋 pdo 可以查看到很多相關說明和範例..
insert into table_name (fields_name) select fields_name from table_name where 條件
有空請多利用孤狗或是奇摩打 insert into
insert into DbA.tablea select * from DBb.tableb
從B資料庫的tableb 資料表撈資料到 A資料庫的tablea 資料表
注意 欄位要相容
<?php
// 定義資料庫相關變數
define('dbHost','localhost');
define('dbUser','root'); // 資料庫連線帳號
define('dbPass',''); // 資料庫連線密碼
define('dbName','sourceDB'); // 資料庫名稱
// 連結資料庫
$db = mysql_connect(dbHost,dbUser,dbPass) or die('Connect to database failed');
mysql_select_db(dbName,$db);
// 抓取並寫入資料
// test.login_log = 目的地資料庫.目的地資料表
// sourceDB.login_log = 來源資料庫.來源資料表
$insStr = 'insert into test.login_log select * from sourceDB.login_log';
$res = mysql_query($insStr,$db) or die("Action failed. Error = ".mysql_error());