PHP訪問MySQL資料庫:
因為連接資料庫需要較長的時間和較大的資源開銷,所以如果在多個網頁中都要頻繁地訪問資料庫,則可以建立與資料庫的持續連接。即調用mysql_pconnect()代替mysql_connect()。
基本步驟:
1.連接伺服器:mysql_connect();
2.選擇資料庫:mysql_select_db();
3.執行SQL語句:mysql_query();
查詢:select
顯示:show
插入:insert
into
更新:update
刪除:delete
4.關閉結果集:mysql_free_result($result);
5.關閉資料庫:mysql_close($link);
B. thinkphp如何連接多個資料庫
1、onfig.php文件
'LOAD_EXT_CONFIG'
=>'db,db_config',
//
載入擴展
配置文件
。多個文件用逗號分隔
//其中db.php中放置的是mysql的配置
//db_config放置的是
sqlserver
的配置
2、其中db.php內容如下
return
array(
'DB_TYPE'=>'mysql',
'DB_HOST'=>'
localhost
',
'DB_NAME'=>'your_mysql_dbname',
'DB_USER'=>'your_mysql_user_name',
'DB_PWD'=>'123456',
'DB_PORT'=>'3306',
'DB_PREFIX'=>'',
);
db_config.php內容如下
return
array(
'DB_CONFIG1'
=>
array(
'db_type'
=>
'pdo',
'db_user'
=>
'XX',
'db_pwd'
=>
'XXXXXXXX',
'DB_DSN'
=>
'sqlsrv:Server=XXXXXX;Database=XXXX',
),
);
3、在Lib/Model下新建一個專門的模型
class
SqlsrvModel
extends
Model
{
protected
$
connection
=
'DB_CONFIG1';
}
4、可以在Action
中調
各個模型了
C. 怎麼讓thinkphp多個資料庫執行事務操作
1、安裝mysql追蹤器2、MySQL預處理語句prepare、execute3、了解MySQL事務4、安裝sqlyong工具1、資料庫配置2、query execute原生sql語句 增刪改查原生:Db::execute('insert into think_data(name) values("ddd")');增刪改都可以用execute,查用query原生:DB::query('select *from demo where id<5');3、參數綁定 命名佔位符綁定參數的綁定:$result3 = Db::execute('select *from demo where id=?',
D. php 怎麼鏈接多個資料庫 並且做兩個資料庫的兩個表關聯查詢
也許是我孤陋寡聞了,似乎沒有辦法跨庫關聯查詢吧。如果非要跨庫關聯,我能想到的辦法就是把兩邊的數據查詢出來並存入一個臨時表,再查詢臨時表。不過這種方法只是用於不同庫中相同或相似的表,比如有的數據量較大的分庫項目。
在回過頭來看你的項目需求,其實根本不需要跨庫的。首先在任意一個庫里創建一個表,在發送會議信息給會員的時候,除了這個表的主鍵之外,只需要記錄會員的id和會議的id,這兩個id分別從兩個庫里獲取。
你如果要查看某條會議信息發送的詳情,就通過這兩個id分別從兩個庫里獲取會員信息和會議信息。
你如果要查詢出列表,用笨辦法,因為你這個表肯定和會員或會議其中一個在一個庫了,可以關聯,然後在列表循環中逐條查詢另一個數據,雖然這樣有些影響性能,但是也比「跨庫關聯查詢」好點,況且如果數據多的話,一般都是分頁操作的話,一個列表最多二三十條記錄,一次查詢二三十也不會有太大影響。
另一個笨辦法,就是把發送記錄列表中所有需要列出的欄位都記錄在發送會議信息的記錄表裡,這樣就不需要在循環查詢另一個表了。但缺點就是這裡面的數據就不能和會員以及會議信息的數據同步,除非你在更新會員以和會議信息的數據的同時更新這個表的數據。
但不管用哪種方式,我覺得都比「跨庫關聯查詢」要好,即使真的有「跨庫關聯查詢」的方法。
E. PHP中如何連接多個資料庫,同時操作兩個以上
$conn1=mysql_connect('...','...','...'); //將第一個資料庫連接資源保存到變數conn1中
$conn2=mysql_connect('...','...','...'); //將第二個資料庫連接資源保存到變數conn2中
然後在執行查詢操作時,指定使用哪個連接資源,如:mysql_query('select ....',$conn1);
希望可以幫到你,謝謝!
F. php如何在同一個頁面裡面同時連接多個不同的資料庫表
<?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的第四個參數設置成true,表示創建一個新的連接
這樣你就獲得咯兩個資料庫連接,然後指定對應的資料庫即可。但不建議這么做
建議採用資料庫.數據表的格式訪問存儲數據,代碼簡練,邏輯清楚
G. PHP在同一頁面連接兩個不同資料庫需要注意些什麼 - 技術問答
$conn
=
@mysql_connect(\"loaclhost\",\"root\",\"root\")
or
die
(\"連接失敗!\");??$select_db1
=
@mysql_select_db(\"datebase1\",$conn)
or
die(\"資料庫不存在!\");??$select_db2
=
@mysql_selcet_db(\"database2\",$conn)
or
die(\"資料庫不存在\");
//連接資料庫datebase1和datebase2//下面是對資料庫的操作,根據連接標識的不同來進行$query1
=
@mysql_query(\"select
*
from
tablename\",$select_db1)
or
die
(\"操作失敗!\");$query2
=
@mysql_query(\"select
*
from
tablename\",$select_db2)
or
die
(\"操作失敗!\");
H. php如何一起查詢多個資料庫的所有表
下面的代碼可以查詢單個資料庫的所有表的指定的欄位內容,如何才能實現多個資料庫一起查詢相同欄位的內容,每個資料庫欄位都一樣,表都是100+個。並且下面的代碼雖然能查詢單個資料庫所有表的內容,但是查詢一次耗費時間很長,該怎麼樣優化才能加快速度,不然假設多個資料庫一起查詢實現了,該會變得多卡。
$i=1; //初始一個變數iwhile($i<=100) //當變數i小於等於100時都執行{ $query ="select * from 表".$i." where 欄位1=". $textfield; $row =mssql_query($query); $i++; //變數i遞增運算//輸出查詢結果while($list=mssql_fetch_array($row)){ //print_r($list);echo '賬號:',$list['欄位1'];echo '--〉昵稱:',$list['欄位2'];echo '--〉密碼:',$list['欄位3']; echo '</br>';}} }
I. PHP同時連接多個mysql資料庫示例代碼
這篇文章主要介紹了PHP同時連接多個mysql資料庫的具體實現,需要的朋友可以參考下
實例:
代碼如下:
<?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];
?>
這段代碼存在問題,在程序執行時會報錯:PHP
Warning:
mysql_fetch_array()
expects
parameter
1
to
be
resource,
boolean
given
in
....
原因分析:
程序開始建立兩個資料庫鏈接,函數mysql_query()原型:
resource
mysql_query
(
string
$query
[,
resource
$link_identifier
]
)
向與指定的連接標識符關聯的伺服器中的當前活動資料庫發送一條查詢。如果沒有指定
link_identifier,則使用上一個打開的連接。如果沒有打開的連接,本函數會嘗試無參數調用
mysql_connect()
函數來建立一個連接並使用之。查詢結果會被緩存。
在本例中由於沒有指定link_identifier,所以,在執行第一條sql時,默認使用的是上一個打開的鏈接,即$conn2,而實際上第一條sql語句應該使用的是$conn1,所以導致報錯,所以為了能夠鏈接多個mysql資料庫,可以使用如下方法:
方法1:在mysql_query函數中指定所用連接,即:
代碼如下:
<?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("proct",
$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語句中關聯所用資料庫,此時可以省略mysql_query的第二個參數,即:
代碼如下:
<?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";
//關聯資料庫
$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];
?>
J. php能同時連接2個資料庫嗎
只能連接一個庫,庫裡面可以有多張表。
我是弄IOS的,所以在這些方面我比較熟。