後來火了,在虛擬機裝上WIN2003一試,加載MSSQL模塊是沒問題了,但是用mssql_connect("localhost", "sa", "");卻怎麼也連不上數據庫,後來上網查了很多資料,才終於搞定了:
環境:IIS6.0+PHP5+SQL Server2005
SQL Server安裝的時候選擇混合登陸模式,即windows和sql server身份驗證模式。
步驟:
1. 首先按通常做法配置好PHP5連接MS SQL Server
PHP.ini 裡面打開 extension=php_mssql.dll 選項 (就是把前面的 ; 號去掉)
2. 下載正確版本的 ntwdblib.dll (2000.80.194.0)
3. 覆蓋 c:windows\system32\ntwdblib.dll
4. 覆蓋 php\ntwdblib.dll(有時候完成了這一步也不成功的話,就把PHP所依賴的php5ts.dll放到system32目錄下)
5. 運行 SQL Server 配置管理器:SQL Server Configuration Manager,打開協議 Protocols
6. 允許命名管道 "named pipes" 和 "tcp/ip"
7. 右鍵點擊 "tcp/ip",打開屬性 Properties 標簽 "IP addresses"
8. 在 TCP 動態端口 "TCP Dynamic Ports" 填入 1433(經過測試,其實這裡可以不填的)
9. 重啟 SQL Server、IIS和PHP
10.用主機名+端口號來連接的,mssql_connect("localhost,1433", "sa", "");(我試了一下,不用也行)
網上有些人說,要把php.ini配置文件裡的mssql.secure_connection = Off 改成on,結果我改了之後,試了好久都連接不上SQL Server,後來嘗試把mssql.secure_connection = Off 改回成Off之後,終於連上了。