你是希望用PHP代碼實(shí)現(xiàn)同時(shí)寫(xiě)兩個(gè)數(shù)據(jù)庫(kù)還是希望只是兩個(gè)數(shù)據(jù)庫(kù)的數(shù)據(jù)一致?如果僅是希望數(shù)據(jù)庫(kù)數(shù)據(jù)數(shù)據(jù)一至,oracle自帶的機(jī)制就能實(shí)現(xiàn)。如果是想自己編程實(shí)現(xiàn)同時(shí)兩個(gè)數(shù)據(jù)庫(kù)的操作,也方便,PHP在鏈接不同數(shù)據(jù)庫(kù)實(shí)例時(shí),會(huì)得到不同的鏈接句柄,在后面具體操作時(shí),同時(shí)對(duì)這兩個(gè)鏈接句柄操作就行了,但這樣存在數(shù)據(jù)不完全一致的風(fēng)險(xiǎn),必須校驗(yàn),這樣又拖慢了速度。
成都創(chuàng)新互聯(lián)公司作為成都網(wǎng)站建設(shè)公司,專(zhuān)注網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì),有關(guān)企業(yè)網(wǎng)站建設(shè)方案、改版、費(fèi)用等問(wèn)題,行業(yè)涉及樓梯護(hù)欄等多個(gè)領(lǐng)域,已為上千家企業(yè)服務(wù),得到了客戶(hù)的尊重與認(rèn)可。
演示代碼如下:
echo "br /b演示多數(shù)據(jù)庫(kù)克隆操作(多數(shù)據(jù)庫(kù)同時(shí)寫(xiě)操作)/bbr /";
$this-loadModel('student.php',1);
//如果兩個(gè)不同數(shù)據(jù)庫(kù)服務(wù)器的表對(duì)象結(jié)構(gòu)完全一致,則不必重復(fù)載入表對(duì)象定義文件,只需要在實(shí)例化時(shí)指定服務(wù)器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='測(cè)試克隆人';
//如果進(jìn)行了主對(duì)象的克隆操作,則在完成主對(duì)象數(shù)據(jù)持久化后,所有的子對(duì)象將會(huì)同步插入數(shù)據(jù)。
$student1-insert();
首先要把數(shù)據(jù)庫(kù)A、B的連接權(quán)限都grant給一個(gè)用戶(hù),然后用這個(gè)用戶(hù)連接數(shù)據(jù)庫(kù)。
那么可以用A.a, B.b這樣去訪問(wèn)表。
剩下的就是SQL select ... insert into語(yǔ)句的事,相信你會(huì)。
基于數(shù)據(jù)庫(kù) Log 日志分析可以實(shí)現(xiàn),網(wǎng)上搜一下 CDC 數(shù)據(jù)同步。。
不過(guò)你也可以嘗試下 cloud.tapdata.net , 一個(gè)在線的數(shù)據(jù)同步工具,支持一次性全量同步,也支持實(shí)時(shí)的增量同步。
沒(méi)明白你的意思
你說(shuō)的是 表里的 行呢
還是 行 里面的 值呢
表里面的行,直接insert 一條就可以
行里的值用 update tablename set x = 101 where 別的條件 limit 1;
這個(gè)x是你要修改的字段,101是修改后的值,x以前是=1的,limit 1是只修改一條的意思。
方法一:手工維護(hù),一個(gè)數(shù)據(jù)庫(kù)有改動(dòng),立即備份,導(dǎo)入到另一個(gè)數(shù)據(jù)庫(kù),保證二者數(shù)據(jù)一致。這個(gè)比較麻煩。
方法二: 修改兩個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)更新部分代碼,不論是哪個(gè)系統(tǒng)的數(shù)據(jù)庫(kù)發(fā)生改變,同時(shí)寫(xiě)入兩個(gè)數(shù)據(jù)庫(kù)。(建議)
方法三:在數(shù)據(jù)庫(kù)里面需要同步的數(shù)據(jù)表上面添加相應(yīng)的觸發(fā)器及存儲(chǔ)過(guò)程,寫(xiě)入數(shù)據(jù)到另外數(shù)據(jù)庫(kù)。(建議)
使用程序無(wú)法實(shí)現(xiàn)這種功能,因?yàn)闊o(wú)法保證事務(wù)的一致性,比如:A數(shù)據(jù)庫(kù)中的a表復(fù)制到B數(shù)據(jù)庫(kù)中的a表的過(guò)程中,A數(shù)據(jù)庫(kù)中的a表的一條記錄被刪除,這樣就無(wú)法實(shí)現(xiàn)數(shù)據(jù)的一致性!正確的做法是使用MySQL復(fù)制的功能!很簡(jiǎn)單,只需要幾步配置即可!