2011-05-07 46 views
0

任何人都可以幫助我,或者就我遇到的這個連接問題提供建議。目前基本上我可以連接到一個數據庫。問題是我查詢的數據來自多個網站(全部以V1_database開頭.....)。例如我的數據庫包括V1_database_newyork或V1_database_denver等使用sqlsrv_connect連接到多個數據庫

我已經創建了在Microsoft SQL Server Management Studio中這樣的查詢,其拾取與V1_database開頭的所有數據庫:

SELECT name 
FROM sys.databases 
WHERE name NOT IN ('master', 'tempdb', 'model', 'msdb') AND name LIKE 'V1_database%' 

我當前的代碼連接到我的數據庫之一如下(這工作正常):

 <?php 
     /*data base connection */ 

     $serverName = ".\SQLEXPRESS"; 
     $connectionOptions = array("Database"=>"V1_database_newyork", 
     "UID"=>"username", 
     "PWD" => "password"); 

     /* Connect using Windows Authentication */  
     $conn = sqlsrv_connect($serverName, $connectionOptions); 

     /* Check whether connnection is established */ 
     if($conn === false) 
     { 
      die(print_r(sqlsrv_errors(), true)); 
     } 


/* Close the connection. */ 
sqlsrv_close($conn); 
?> 

誰能幫助我適應這個查詢,以便在連接字符串會讓我詢問與「V1_database%」任何數據庫?

如果這一切都不清楚,請讓我知道!任何意見將不勝感激!

乾杯,

尼爾

回答

0

按照PHP documentation on mssql_connect

resource mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]]) 

返回的資源必須在所有查詢中使用,所以連接與此有關MSSQL:

$res = mssql_connect ([ string $servername [, string $username [, string $password [, bool $new_link ]]]]) 

並在所有查詢中使用$res

mssql_query (string $query [, resource $link_identifier [, int $batch_size = 0 ]]) 

如果您需要兩個數據庫連接,然後使用$res1$res2。 一個很好的做法是讓一些輕量級類不僅存儲連接資源,而且還存儲其他內容,如上次錯誤。

+0

謝謝您的回覆。我不完全確定這是否適用於我的情況。基本上每個數據庫都有單個軌道檢查運行的數據。我有很多這些數據庫(即多次運行)。我的網站上有一個網頁,我需要輸出關於每個數據庫的一些基本信息。分工和運行的開始和結束英里。你認爲做這件事的最好方法是什麼?任何建議將不勝感激!謝謝Neil – happyneil 2011-05-07 13:11:54

+0

我在過去有這種情況,我自己的連接類不使用查詢的資源鏈接。所以所有的查詢都是針對上一次連接的數據庫完成的。 因此 - 當我在應用程序init代碼中初始化2個數據庫時,我已將兩個類/ vars連接到不同的數據庫......但實際上它們查詢連接的最後一個。 – 2011-05-07 20:07:28