PHP鏈接Microsoft SQL Server 2005/2008

PHP自帶的MSSQL擴展php_mssql.dll原來是給SQL Server 2000用的,難怪鏈接不上2008?! -_-!!要使用SQL Server 2005以上版本,就要用到微軟爲PHP提供的最新第三方擴展SQL Server Driver for PHP才行,最新版本是2.0的.須要到微軟官方去下載新的驅動.php

下載驅動程序,我下載的是2.0的,下載後安裝釋放程序,裏面有如下文件:sql

php_pdo_sqlsrv_52_nts.dll數據庫

php_pdo_sqlsrv_52_ts.dllwindows

php_pdo_sqlsrv_53_nts_vc6.dll安全

php_pdo_sqlsrv_53_nts_vc9.dll測試

php_pdo_sqlsrv_53_ts_vc6.dllui

php_pdo_sqlsrv_53_ts_vc9.dllspa

php_sqlsrv_52_nts.dll線程

php_sqlsrv_52_ts.dll翻譯

php_sqlsrv_53_nts_vc6.dll

php_sqlsrv_53_nts_vc9.dll

php_sqlsrv_53_ts_vc6.dll

php_sqlsrv_53_ts_vc9.dll

SQLServerDriverForPHP.chm(手冊,英文夠好的話,能夠看看,嘿嘿)

SQLServerDriverForPHP_License.rtf

SQLServerDriverForPHP_Readme.htm(自述文件

 

下面是自述文件裏的內容,我翻譯一下:

 


驅動程序文件

PHP 版本

線程安全性

用於PHP .dll

php_sqlsrv_53_nts_vc6.dll

php_pdo_sqlsrv_53_nts_vc6.dll

5.3

no

php5.dll

php_sqlsrv_53_nts_vc9.dll

php_pdo_sqlsrv_53_nts_vc9.dll

5.3

no

php5.dll

php_sqlsrv_53_ts_vc6.dll

php_pdo_sqlsrv_53_ts_vc6.dll

5.3

yes

php5ts.dll

php_sqlsrv_53_ts_vc9.dll

php_pdo_sqlsrv_53_ts_vc9.dll

5.3

yes

php5ts.dll

php_sqlsrv_52_nts.dll

php_pdo_sqlsrv_52_nts.dll

5.2

no

php5.dll

php_sqlsrv_52_ts.dll

php_pdo_sqlsrv_52_ts.dll

5.2

yes

php5ts.dll



關於VC6和VC9的區別,還有非線程安全與線程安全


VC6 版本是使用 Visual Studio 6 編譯器編譯的,若是你是在windows下使用Apache+PHP的,請選擇VC6版本。

VC9 版本是使用 Visual Studio 2008 編譯器編譯的,若是你是在windows下使用IIS+PHP的,請選擇VC9版本。

Non Thread Safe就是非線程安全,在執行時不進行線程(Thread)安全檢查;

Thread Safe 是線程安全,執行時會進行線程(Thread)安全檢查,以防止有新要求就啓動新線程的 CGI 執行方式而耗盡系統資源;



開始配置



我用的是APMserv 搭建的PHP環境(Apache 2.2.9+PHP 5.2.6+MySQL 5.1.28),想用線程安全的,因此選擇php_sqlsrv_52_ts.dll和php_pdo_sqlsrv_52_ts.dll。

開始工做,先把文件拷貝到PHP文件夾下的ext目錄下,而後在配置文件php.ini
Extensions後面加上:

;extension=php_sqlsrv_52_ts.dll

;extension=php_pdo_sqlsrv_52_ts.dll

再重啓Apache。

最後測試一下是否成功,看一下phpinfo的sqlsrv

 


如圖所示這樣就表示鏈接成功了!!開始工做嘍!

最終測試環境圖 

 

二鏈接數據庫:

   使用過SQL Server的人應該都清楚,SQL Server經常使用的有兩種認證方式,一種是本地系統帳戶認證(Windows Authentication ),一種是使用用戶名和密碼(SQL Server Authentication ),第二種認證方式必須啓用SQL Server的混合模式。

  1.Windows Authentication鏈接部分代碼段:

<?php

$serverName = "(local)";

$connectionInfo = array("Database"=>"TestingInfo","ConnectionPooling"=>false);

$conn = sqlsrv_connect( $serverName,$connectionInfo);

if$conn == false)

{

    echo "鏈接失敗!";

   die( print_r( sqlsrv_errors(), true));

}

?>

  2.SQL Server Authentication鏈接部分代碼段:

<?php

$serverName = "(local)";

$uid = "sa";

$pwd = "******";

$connectionInfo =  array("UID"=>$uid,"PWD"=>$pwd,"Database"=>"TestingInfo");

$conn = sqlsrv_connect( $serverName,$connectionInfo);

if$conn == false)

{

    echo "鏈接失敗!";

   die( print_r( sqlsrv_errors(), true));

}

?>

相關文章
相關標籤/搜索