這篇文章主要介紹了PHP同時(shí)連接多個(gè)mysql數(shù)據(jù)庫(kù)的具體實(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];
?>
這段代碼存在問(wèn)題,在程序執(zhí)行時(shí)會(huì)報(bào)錯(cuò):PHP Warning: mysql_fetch_array() expects parameter 1 to be resource, boolean given in ....
原因分析:
程序開(kāi)始建立兩個(gè)數(shù)據(jù)庫(kù)鏈接,函數(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ù)庫(kù)發(fā)送一條查詢。如果沒(méi)有指定 link_identifier,則使用上一個(gè)打開(kāi)的連接。如果沒(méi)有打開(kāi)的連接,本函數(shù)會(huì)嘗試無(wú)參數(shù)調(diào)用 mysql_connect() 函數(shù)來(lái)建立一個(gè)連接并使用之。查詢結(jié)果會(huì)被緩存。
在本例中由于沒(méi)有指定link_identifier,所以,在執(zhí)行第一條sql時(shí),默認(rèn)使用的是上一個(gè)打開(kāi)的鏈接,即$conn2,而實(shí)際上第一條sql語(yǔ)句應(yīng)該使用的是$conn1,所以導(dǎo)致報(bào)錯(cuò),所以為了能夠鏈接多個(gè)mysql數(shù)據(jù)庫(kù),可以使用如下方法:
方法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語(yǔ)句中關(guān)聯(lián)所用數(shù)據(jù)庫(kù),此時(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ù)庫(kù)
$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];
?>
更多信息請(qǐng)查看IT技術(shù)專欄