同時連接多個資料庫
<?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,表示創建一個新的連接
這樣你就獲得咯兩個資料庫連接,然後指定對應的資料庫即可。但不建議這么做
建議採用資料庫.數據表的格式訪問存儲數據,代碼簡練,邏輯清楚
❷ PHP同時連接多個mysql資料庫示例代碼
這篇文章主要介紹了PHP同時連接多個mysql資料庫的具體實現,需要的朋友可以參考下
實例:
代碼如下:
$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]."";
$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函數中指定所用連接,即:
代碼如下:
$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]."";
$sql = "select * from web ";
$query = mysql_query($sql, $conn2);
if($row = mysql_fetch_array($query))
echo $row[0];
?
方法2:在sql語句中關聯所用資料庫,此時可以省略mysql_query的第二個參數,即:
代碼如下:
$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]."";
$sql = "select * from db2.web ";
$query = mysql_query($sql);
if($row = mysql_fetch_array($query))
echo $row[0];
?
❸ 一台伺服器上能同時運行兩個資料庫伺服器嗎
一台伺服器多個資料庫運行,是完全可以的。
伺服器安裝資料庫,不僅可以一個資料庫服務,運行多個網站的庫。
還可以在同一台伺服器,運行多個不同的數據服務。
比如一個mysql,運行多個PHP站點,多個資料庫。
而且還可以一台伺服器同時運行,mysql資料庫和sqlserver資料庫。
(3)同時連接多個資料庫擴展閱讀:
可以從這幾個方面來衡量伺服器是否達到了其設計目的;
R:Reliability可靠性;
A:Availability可用性;
S:Scalability可擴展性;
U:Usability易用性;
M:Manageability可管理性,即伺服器的RASUM衡量標准。
可擴展性:伺服器必須具有一定的「可擴展性」,這是因為企業網路不可能長久不變,特別是在當今信息時代。
如果伺服器沒有一定的可擴展性,當用戶一增多就不能勝任的話,一台價值幾萬,甚至幾十萬的伺服器在短時間內就要遭到淘汰,這是任何企業都無法承受的。為了保持可擴展性,通常需要在伺服器上具備一定的可擴展空間和冗餘件。
可擴展性具體體現在硬碟是否可擴充,CPU是否可升級或擴展,系統是否支持WindowsNT、Linux或UNIX等多種可選主流操作系統等方面,只有這樣才能保持前期投資為後期充分利用。