筆者使用的環境是Windows 2008 x64位系統,安裝了IIS7.0,自己搭建了xampp,內含Apache2.4,PHP5.6.21,MySQL(10.1.13-MariaDB)。我只使用了IIS配合php,使用thinkphp5.0.6搭建的網站,原本使用的MySQL數據庫,現在需要連接SQLServer2008讀寫一些數據。網上找了大量的資料并實踐,現總結一下。
PHP連接MSSQL2008/2005數據庫與以往的連接mssql2000是不一樣的,連接mssql2008/2005是需要自己添加PHP對MSSQL連接的驅動擴展了,而我們常用的hp.ini中的extension=php_mssql.dll擴展只適用連接于MSSQL2000哦
這是一個擴展包,我是在這里下載的 http://www.microsoft.com/en-us/download/details.aspx?id=20098 根據你的php版本選擇對應的安裝包。由于我的PHP版本是5.6,所以我下載的是 SQLSRV32.EXE, 運行后選擇解壓目錄為 xampp/php/ext/ 打開該目錄,里面出現了
php_pdo_sqlsrv_52_nts.dllphp_pdo_sqlsrv_52_ts.dllphp_pdo_sqlsrv_53_nts_vc6.dllphp_pdo_sqlsrv_53_nts_vc9.dllphp_pdo_sqlsrv_53_ts_vc6.dllphp_pdo_sqlsrv_53_ts_vc9.dllphp_sqlsrv_52_nts.dllphp_sqlsrv_52_ts.dllphp_sqlsrv_53_nts_vc6.dllphp_sqlsrv_53_nts_vc9.dllphp_sqlsrv_53_ts_vc6.dllphp_sqlsrv_53_ts_vc9.dllSQLServerDriverForPHP.chm(手冊,英文夠好可以看看)SQLServerDriverForPHP_License.rtfSQLServerDriverForPHP_Readme.htm(自述文件)(1)在php.ini中添加如下兩條擴展:
extension=php_sqlsrv_56_ts.dllextension=php_pdo_sqlsrv_56_ts.dll(2)將;extension=php_pdo.dll
前面的;去掉,開啟pdo連接擴展··
(我懷疑這個dll是舊版本php需要配置的,我的5.6版本沒有這個dll,我也沒有添加這行配置,也配置成功了)
(3)重新啟動apache或者IIS,我是直接結束掉了進程中的pgp-cgi.exe就實現了php配置刷新。 備注:不要用***_nts.dll的文件,這樣就會失敗
extension=php_sqlsrv_56_nts.dllextension=php_pdo_sqlsrv_56_nts.dll(4)這時候你在phpinfo()中的PDO配置中會看見已經存在sqlsrv了。
https://www.microsoft.com/download/details.aspx?id=36434 我不知道選擇語言有什么用處。反正我安裝的是簡體中文。
To access data in a SQL Server 2005 or later database using the Microsoft Drivers for PHP for SQL Server (SQL Server 2008 or later if using version 3.2 or 3.1), you must have the following components installed on your computer:
配置的難點在于確定php版本以及SQL Server Driver for PHP的對應關系。 查看Microsoft官網的介紹
SQLServer 查詢當前配置的字符編碼:
SELECT COLLATION下面是查詢結果對應表:返回值 | 編碼信息 |
---|---|
936 | 簡體中文GBK |
950 | 繁體中文BIG5 |
437 | 美國/加拿大英語 |
932 | 日文 |
949 | 韓文 |
866 | 俄文 |
65001 | unicode UFT-8 |
新聞熱點
疑難解答
圖片精選