首先要把數(shù)據(jù)庫A、B的連接權限都grant給一個用戶,然后用這個用戶連接數(shù)據(jù)庫。
成都創(chuàng)新互聯(lián)服務項目包括金林網站建設、金林網站制作、金林網頁制作以及金林網絡營銷策劃等。多年來,我們專注于互聯(lián)網行業(yè),利用自身積累的技術優(yōu)勢、行業(yè)經驗、深度合作伙伴關系等,向廣大中小型企業(yè)、政府機構等提供互聯(lián)網行業(yè)的解決方案,金林網站推廣取得了明顯的社會效益與經濟效益。目前,我們服務的客戶以成都為中心已經輻射到金林省份的部分城市,未來相信會繼續(xù)擴大服務區(qū)域并繼續(xù)獲得客戶的支持與信任!
那么可以用A.a, B.b這樣去訪問表。
剩下的就是SQL select ... insert into語句的事,相信你會。
1、你可以做一下nfs文件掛載,讓不同的服務器使用同一個磁盤
2、可以在php網站conf配置數(shù)據(jù)庫文件里指向同一個數(shù)據(jù)庫的ip
(但要看你的實際服務器部暑)
你是希望用PHP代碼實現(xiàn)同時寫兩個數(shù)據(jù)庫還是希望只是兩個數(shù)據(jù)庫的數(shù)據(jù)一致?如果僅是希望數(shù)據(jù)庫數(shù)據(jù)數(shù)據(jù)一至,oracle自帶的機制就能實現(xiàn)。如果是想自己編程實現(xiàn)同時兩個數(shù)據(jù)庫的操作,也方便,PHP在鏈接不同數(shù)據(jù)庫實例時,會得到不同的鏈接句柄,在后面具體操作時,同時對這兩個鏈接句柄操作就行了,但這樣存在數(shù)據(jù)不完全一致的風險,必須校驗,這樣又拖慢了速度。
演示代碼如下:
echo "br /b演示多數(shù)據(jù)庫克隆操作(多數(shù)據(jù)庫同時寫操作)/bbr /";
$this-loadModel('student.php',1);
//如果兩個不同數(shù)據(jù)庫服務器的表對象結構完全一致,則不必重復載入表對象定義文件,只需要在實例化時指定服務器id就行了。
//$this-loadModel('student.php',2);
$this-loadModel('student2.php',2);
$student1=new Tstudent(1);
$student2=new Tstudent2(2);
$student3=new Tstudent(2);
$student2-cloneFrom($student1);
$student3-cloneFrom($student1);
$student1-uuid='999';
$student1-id='999';
$student1-name='測試克隆人';
//如果進行了主對象的克隆操作,則在完成主對象數(shù)據(jù)持久化后,所有的子對象將會同步插入數(shù)據(jù)。
$student1-insert();
使用程序無法實現(xiàn)這種功能,因為無法保證事務的一致性,比如:A數(shù)據(jù)庫中的a表復制到B數(shù)據(jù)庫中的a表的過程中,A數(shù)據(jù)庫中的a表的一條記錄被刪除,這樣就無法實現(xiàn)數(shù)據(jù)的一致性!正確的做法是使用MySQL復制的功能!很簡單,只需要幾步配置即可!