PHP自帶的擴展php_mssql.dll連接SQL Server 2000,用mssql系列函數來操作,和操作MySQL的一樣。
1、打開PHP配置文件php.ini,找到;extension=php_mssql.dll把前面的分號去掉。
2、找到mssql.secure_connection = Off修改成 mssql.secure_connection = On。
3、把PHP文件夾下的php_mssql.dll和ntwdblib.DLL這兩個文件拷貝到C:\windows\system32\文件夾下。
4、重啟Apache,OK
測試一下:
<?php //用mssql_connect $conn=mssql_connect('localhost','pandao','1987') or die('數據庫連接不上'); mssql_select_db('test',$conn); //query語句 $Query="select * from news"; $AdminResult=mssql_query($Query); //輸出結果 $Num=mssql_num_rows($AdminResult); for($i=0;$i<$Num;$i++) { $Row=mssql_fetch_array($AdminResult); echo($Row[1]); echo("<br/>"); } ?>
當然還可以用pdo和ODBC來連接SQL Server。
准備工作
下載驅動程序,我下載的是2.0的,下載后安裝釋放程序,里面有以下文件:
php_pdo_sqlsrv_52_nts.dll
php_pdo_sqlsrv_52_ts.dll
php_pdo_sqlsrv_53_nts_vc6.dll
php_pdo_sqlsrv_53_nts_vc9.dll
php_pdo_sqlsrv_53_ts_vc6.dll
php_pdo_sqlsrv_53_ts_vc9.dll
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