今天配置服務器需要用php和Sqlserver2008數據庫,網上找了一些資料,基本上都是說需要下載微軟的驅動放在ext文件夾后,再在php.ini中增加如下配置:
[PHP_PDO_SQLSRV]
extension=php_pdo_sqlsrv_56_ts.dll
[PHP_SQLSRV]
extension=php_sqlsrv_56_ts.dll
最后重啟服務器即可,但我重啟了apache之后在phpinfo中還是沒有看到sqlsrv的擴展,后來在百度貼吧http://tieba.baidu.com/p/3214930266中找到了問題關鍵:
原來微軟官方提供的microsoft drivers 3.2 for php for sql server並不支持64位的php版本,一些非官方的3.0.2.2倒是單獨提供了64位版本的編譯,[url]http://鏈接:http://robsphp.blogspot.co.uk/2012/06/unofficial-microsoft-sql-server-driver.html[/url](這個在牆外打不開),
不過還好有熱心網友提供了百度的分享,http://pan.baidu.com/s/1dDIRpJF,
這就是最終比較完美的解決方案了,下載好,里面會有32位和64位的擴展,解壓對應php版本需要的擴展,然后在php.ini中添加extension=php_sqlsrv_版本號_線程安全版本號.dll,比如extension=php_sqlsrv_56_ts.dll,64位php親測可行,如果是32位的還是建議使用微軟官方提供的3.2ctp版的http://www.microsoft.com/en-us/download/details.aspx?id=20098
我寫的是全路徑:
extension=E:\huanjing\php\ext\php_pdo_sqlsrv_56_nts.dll
extension=E:\huanjing\php\ext\php_sqlsrv_56_nts.dll
//=================================================================注意
這個地方注意一點
tp5 使用查詢構造器 中鏈式查詢的時候 報錯 : 'ROW_NUMBER' 不是可以識別的 函數名。具體原因未知
在這里我使用的tp5中的原生查詢可以代替。
