十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
實(shí)例化兩條sql鏈接.
為企業(yè)提供成都網(wǎng)站建設(shè)、做網(wǎng)站、網(wǎng)站優(yōu)化、成都營銷網(wǎng)站建設(shè)、競價(jià)托管、品牌運(yùn)營等營銷獲客服務(wù)。創(chuàng)新互聯(lián)公司擁有網(wǎng)絡(luò)營銷運(yùn)營團(tuán)隊(duì),以豐富的互聯(lián)網(wǎng)營銷經(jīng)驗(yàn)助力企業(yè)精準(zhǔn)獲客,真正落地解決中小企業(yè)營銷獲客難題,做到“讓獲客更簡單”。自創(chuàng)立至今,成功用技術(shù)實(shí)力解決了企業(yè)“網(wǎng)站建設(shè)、網(wǎng)絡(luò)品牌塑造、網(wǎng)絡(luò)營銷”三大難題,同時(shí)降低了營銷成本,提高了有效客戶轉(zhuǎn)化率,獲得了眾多企業(yè)客戶的高度認(rèn)可!
例如?
$wdb?=?mysql_connect('localhost','root','123456','a1');//負(fù)責(zé)寫入的數(shù)據(jù)庫
$rdb?=?mysql_connect('192.168.xx.xx','root','123456','a2');//負(fù)責(zé)讀的數(shù)據(jù)庫
這樣就可以鏈接兩個(gè)數(shù)據(jù)庫了。
這篇文章主要介紹了PHP同時(shí)連接多個(gè)mysql數(shù)據(jù)庫的具體實(shí)現(xiàn),需要的朋友可以參考下
實(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
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í)行時(shí)會(huì)報(bào)錯(cuò):PHP
Warning:
mysql_fetch_array()
expects
parameter
1
to
be
resource,
boolean
given
in
....
原因分析:
程序開始建立兩個(gè)數(shù)據(jù)庫鏈接,函數(shù)mysql_query()原型:
resource
mysql_query
(
string
$query
[,
resource
$link_identifier
]
)
向與指定的連接標(biāo)識(shí)符關(guān)聯(lián)的服務(wù)器中的當(dāng)前活動(dòng)數(shù)據(jù)庫發(fā)送一條查詢。如果沒有指定
link_identifier,則使用上一個(gè)打開的連接。如果沒有打開的連接,本函數(shù)會(huì)嘗試無參數(shù)調(diào)用
mysql_connect()
函數(shù)來建立一個(gè)連接并使用之。查詢結(jié)果會(huì)被緩存。
在本例中由于沒有指定link_identifier,所以,在執(zhí)行第一條sql時(shí),默認(rèn)使用的是上一個(gè)打開的鏈接,即$conn2,而實(shí)際上第一條sql語句應(yīng)該使用的是$conn1,所以導(dǎo)致報(bào)錯(cuò),所以為了能夠鏈接多個(gè)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ù)庫,此時(shí)可以省略mysql_query的第二個(gè)參數(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];
?
?php
$link_A=mysql_connect("localhost:917","root","skcg1024",true);
mysql_select_db("db_a",$link_A);
$link_B=mysql_connect("localhost:917","root","skcg1024",true);
mysql_select_db("db_a",$link_B);
print_r($link_A);
print_r($link_B);
mysql_connect的第四個(gè)參數(shù)設(shè)置成true,表示創(chuàng)建一個(gè)新的連接
這樣你就獲得咯兩個(gè)數(shù)據(jù)庫連接,然后指定對(duì)應(yīng)的數(shù)據(jù)庫即可。但不建議這么做
建議采用數(shù)據(jù)庫.數(shù)據(jù)表的格式?訪問存儲(chǔ)數(shù)據(jù),代碼簡練,邏輯清楚
$conn1=mysql_connect('...','...','...'); //將第一個(gè)數(shù)據(jù)庫連接資源保存到變量conn1中
$conn2=mysql_connect('...','...','...'); //將第二個(gè)數(shù)據(jù)庫連接資源保存到變量conn2中
然后在執(zhí)行查詢操作時(shí),指定使用哪個(gè)連接資源,如:mysql_query('select ....',$conn1);
$conn1=mysql_connect('...','...','...'); //將第一個(gè)數(shù)據(jù)庫連接資源保存到變量conn1中
$conn2=mysql_connect('...','...','...'); //將第二個(gè)數(shù)據(jù)庫連接資源保存到變量conn2中
然后在執(zhí)行查詢操作時(shí),指定使用哪個(gè)連接資源,如:mysql_query('select ....',$conn1);
希望可以幫到你,謝謝!