2013-02-01 93 views
-2

先前在Silverlight中開發了應用程序後,我們現在轉向使用HTML5。作爲邁向更開放源代碼方法的一部分,我正在考慮使用PHP鏈接到我們的MSSQL數據庫而不是.NET。有沒有理由不採取這種方法? (我們必須保持MSSQL和Windows)使用PHP訪問MS SQL

+0

對於StackOverflow的問答格式,這不是一個合適的問題。請參閱http://stackoverflow.com/faq#dontask – Crontab

回答

1

根據PHP.Net有很多函數來處理MSSQL數據庫。

反正你應該首先加載驅動程序爲MICROSOFTOfficial SQL Server Site

您可以在微軟下載SQL Server 2005的驅動程序PHP下載中心。下載中包含兩個.dll文件:php_sqlsrv.dll和php_sqlsrv_ts.dll。 加載PHP的SQL Server 2005驅動程序與加載任何PHP擴展相似!

  1. 將擴展文件(php_sqlsrv.dll或php_sqlsrv_ts.dll)放入 PHP擴展目錄中。
  2. 修改php.ini文件以包含擴展名。 根據您要加載的驅動程序版本爲 (非線程安全或線程安全),您需要將 以下行之一添加到您的php.ini文件的動態擴展部分:

    延長= php_sqlsrv.dll

    延長= php_sqlsrv_ts.dll

  3. 重新啓動Web服務器。

  4. 享受API

後萬物,你必須配置在SQL Server 2005 +驅動程序PHP有三個配置選項:

  • LogSubsystems 使用此選項打開或關閉子系統的日誌記錄。 的默認設置是SQLSRV_LOG_SYSTEM_OFF(日誌由默認的 關閉)。
  • LogSeverity 使用此選項可以指定日誌記錄被打開後要記錄的內容 。默認設置爲SQLSRV_LOG_SEVERITY_ERROR(僅在打開日誌記錄後,默認情況下會記錄 )。
  • WarningsReturnAsErrors默認情況下,PHP的驅動程序 將sqlsrv函數生成的警告視爲錯誤。使用 WarningsReturnAsErrors選項可更改此行爲。此選項的默認設置爲 設置爲true。

注意此規則也有例外。例如,更改數據庫上下文所生成的警告永遠不會被視爲錯誤。

在和只有幾個最後的東西,你必須記住 * sqlsrv_connect *函數用於建立一個連接到服務器。

$serverName = "(local)"; 
$connectionOptions = array("Database"=>"myDatabase"); 
/* Connect using Windows Authentication. */ 
$conn = sqlsrv_connect($serverName, $connectionOptions); 
if($conn === false) 
     { die(FormatErrors(sqlsrv_errors())); } 

默認情況下,sqlsrv_connect函數使用Windows身份驗證建立連接。在大多數情況下,這意味着Web服務器的進程標識或線程標識(如果Web服務器使用模擬)用於連接到服務器,而不是最終用戶的標識。

sqlsrv_connect函數接受兩個參數:$ serverName和$ connectionOptions(可選)。

  • $ SERVERNAME該所需參數用於指定的 到要連接的服務器的名稱。在上面的代碼中,建立了到本地服務器的連接 。此參數可以用 指定SQL Server實例或端口號。例如: 示例:

    $ serverName =「myServer \ instanceName」;

- 或 -

$serverName = "myServer, 1521"; 
  • $ connectionOptions此可選參數是設置在該連接上的選項鍵 - 值對的數組。有關
    的更多信息,請參閱產品文檔中的sqlsrv_connect。

UID和PWD選項必須在$ connectionOptions參數設置爲登錄到SQL Server驗證的服務器。

注意該示例中顯示的FormatErrors函數是用於格式化錯誤輸出的自定義函數。

+0

如果您要從網站複製粘貼內容,則應該至少包含指向源http://social.technet.microsoft.com/wiki/的鏈接。內容/文章/ 1258.accessing-sql-server-databases-from-php.aspx – Tchoupi

+0

ops抱歉,我編輯了 –

+1

真棒,謝謝:) – Tchoupi

0

我已經在高可用性生產環境中使用php(在Windows Server 2003和2008上的IIS上運行)以及Microsoft SQL Server(2008和2008R2)近2年。

從PHP到SQL服務器的驅動程序在開始時有點不穩定,但只要獲得最新的驅動程序,它就非常強大。

在我的環境中,PHP和SQL Server組合的性能比.net實現要好。