我感覺你可以把其他兩個數(shù)據(jù)庫中的表提取出來,全都放進一個數(shù)據(jù)庫中,這樣在添加的時候不就容易了嗎?而且也不會帶來其他的影響。我以前做的一個一個后臺同時管理三個網(wǎng)站的程序時就是采用的這種方法。沒有必要非要去連三個數(shù)據(jù)庫的。
成都創(chuàng)新互聯(lián)專業(yè)為企業(yè)提供鑲黃網(wǎng)站建設(shè)、鑲黃做網(wǎng)站、鑲黃網(wǎng)站設(shè)計、鑲黃網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、鑲黃企業(yè)網(wǎng)站模板建站服務(wù),十余年鑲黃做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(wǎng)絡(luò)服務(wù)。
實例化兩條sql鏈接.例如 $wdb = mysql_connect('localhost','root','123456','a1');//負責(zé)寫入的數(shù)據(jù)庫$rdb = mysql_connect('192.168.xx.xx','root','123456','a2');//負責(zé)讀的數(shù)據(jù)庫這樣就可以鏈接兩個數(shù)據(jù)庫了。
我寫一個偽代碼
if(WC1登錄成功){
$conn = mysql_connect(主機, 數(shù)據(jù)庫登錄名, 數(shù)據(jù)庫登陸密碼);
mysql_select_db('wc1', $conn);
mysql_query('SET NAMES 編碼');
}elseif(WC2登錄成功){
$conn = mysql_connect(主機, 數(shù)據(jù)庫登錄名, 數(shù)據(jù)庫登陸密碼);
mysql_select_db('wc2', $conn);
mysql_query('SET NAMES 編碼');
}else{
失敗的處理
}
當然,把數(shù)據(jù)庫連接寫在一個專門的方法或類中會更好一點
這篇文章主要介紹了PHP同時連接多個mysql數(shù)據(jù)庫的具體實現(xiàn),需要的朋友可以參考下
實例:
代碼如下:
?php
$conn1
=
mysql_connect("127.0.0.1",
"root","root","db1");
mysql_select_db("db1",
$conn1);
$conn2
=
mysql_connect("127.0.0.1",
"root","root","db2");
mysql_select_db("db2",
$conn2);
$sql
=
"select
*
from
ip";
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0]."n";
$sql
=
"select
*
from
web
";
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0];
?
這段代碼存在問題,在程序執(zhí)行時會報錯:PHP
Warning:
mysql_fetch_array()
expects
parameter
1
to
be
resource,
boolean
given
in
....
原因分析:
程序開始建立兩個數(shù)據(jù)庫鏈接,函數(shù)mysql_query()原型:
resource
mysql_query
(
string
$query
[,
resource
$link_identifier
]
)
向與指定的連接標識符關(guān)聯(lián)的服務(wù)器中的當前活動數(shù)據(jù)庫發(fā)送一條查詢。如果沒有指定
link_identifier,則使用上一個打開的連接。如果沒有打開的連接,本函數(shù)會嘗試無參數(shù)調(diào)用
mysql_connect()
函數(shù)來建立一個連接并使用之。查詢結(jié)果會被緩存。
在本例中由于沒有指定link_identifier,所以,在執(zhí)行第一條sql時,默認使用的是上一個打開的鏈接,即$conn2,而實際上第一條sql語句應(yīng)該使用的是$conn1,所以導(dǎo)致報錯,所以為了能夠鏈接多個mysql數(shù)據(jù)庫,可以使用如下方法:
方法1:在mysql_query函數(shù)中指定所用連接,即:
代碼如下:
?php
$conn1
=
mysql_connect("127.0.0.1",
"root","root","db1");
mysql_select_db("Muma",
$conn1);
$conn2
=
mysql_connect("127.0.0.1",
"root","root","db2");
mysql_select_db("product",
$conn2);
$sql
=
"select
*
from
ip";
$query
=
mysql_query($sql,$conn1);
//添加連接$conn1
if($row
=
mysql_fetch_array($query))
echo
$row[0]."n";
$sql
=
"select
*
from
web
";
$query
=
mysql_query($sql,
$conn2);
if($row
=
mysql_fetch_array($query))
echo
$row[0];
?
方法2:在sql語句中關(guān)聯(lián)所用數(shù)據(jù)庫,此時可以省略mysql_query的第二個參數(shù),即:
代碼如下:
?php
$conn1
=
mysql_connect("127.0.0.1",
"root","root","db1");
mysql_select_db("db1",
$conn1);
$conn2
=
mysql_connect("127.0.0.1",
"root","root","db2");
mysql_select_db("db2",
$conn2);
$sql
=
"select
*
from
db1.ip";
//關(guān)聯(lián)數(shù)據(jù)庫
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0]."n";
$sql
=
"select
*
from
db2.web
";
$query
=
mysql_query($sql);
if($row
=
mysql_fetch_array($query))
echo
$row[0];
?
$conn1=mysql_connect('...','...','...'); //將第一個數(shù)據(jù)庫連接資源保存到變量conn1中
$conn2=mysql_connect('...','...','...'); //將第二個數(shù)據(jù)庫連接資源保存到變量conn2中
然后在執(zhí)行查詢操作時,指定使用哪個連接資源,如:mysql_query('select ....',$conn1);
希望可以幫到你,謝謝!