下面的代碼可以查詢單個(gè)數(shù)據(jù)庫的所有表的指定的字段內(nèi)容,如何才能實(shí)現(xiàn)多個(gè)數(shù)據(jù)庫一起查詢相同字段的內(nèi)容,每個(gè)數(shù)據(jù)庫字段都一樣,表都是100+個(gè)。并且下面的代碼雖然能查詢單個(gè)數(shù)據(jù)庫所有表的內(nèi)容,但是查詢一次耗費(fèi)時(shí)間很長(zhǎng),該怎么樣優(yōu)化才能加快速度,不然假設(shè)多個(gè)數(shù)據(jù)庫一起查詢實(shí)現(xiàn)了,該會(huì)變得多卡。
目前成都創(chuàng)新互聯(lián)公司已為1000+的企業(yè)提供了網(wǎng)站建設(shè)、域名、雅安服務(wù)器托管、網(wǎng)站托管、服務(wù)器托管、企業(yè)網(wǎng)站設(shè)計(jì)、潼南網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。
$i=1; //初始一個(gè)變量iwhile($i=100) //當(dāng)變量i小于等于100時(shí)都執(zhí)行{ $query ="select * from 表".$i." where 字段1=". $textfield; $row =mssql_query($query); $i++; //變量i遞增運(yùn)算//輸出查詢結(jié)果while($list=mssql_fetch_array($row)){ //print_r($list);echo '賬號(hào):',$list['字段1'];echo '--〉昵稱:',$list['字段2'];echo '--〉密碼:',$list['字段3']; echo '/br';}} }
你說的是數(shù)據(jù)庫,還是數(shù)據(jù)表啊。
如果是數(shù)據(jù)表的話,可以用連接查詢。
select a.id,a.username,b.id as bid b.title from 表A a left join 表B b on a.id=b.id
這樣就可以了,如果是兩個(gè)數(shù)據(jù)庫,那就比較麻煩,要?jiǎng)?chuàng)建兩個(gè)連接對(duì)象。再分別打開兩個(gè)表。再操作。
只能連接一個(gè)庫,庫里面可以有多張表。
我是弄IOS的,所以在這些方面我比較熟。
$conn1=mysql_connect('...','...','...'); //將第一個(gè)數(shù)據(jù)庫連接資源保存到變量conn1中
$conn2=mysql_connect('...','...','...'); //將第二個(gè)數(shù)據(jù)庫連接資源保存到變量conn2中
然后在執(zhí)行查詢操作時(shí),指定使用哪個(gè)連接資源,如:mysql_query('select ....',$conn1);
希望可以幫到你,謝謝!
$con = mysql_connect('localhost','root','root');
你的服務(wù)器,用戶名,密碼一樣,雖然數(shù)據(jù)庫名不同,但只是一個(gè)連接
可以在查詢的表明前加上數(shù)據(jù)庫名select * from db.table
或者再新建一個(gè)數(shù)據(jù)庫用戶,這樣就開兩個(gè)連接了
這篇文章主要介紹了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];
?