thinkphp5.0.6 連接SQLServer2008r2 配置總結

thinkphp連接SQLServer2008數據庫配置

筆者使用的環境是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哦

下載一個SQL Server Driver for PHP

這是一個擴展包,我是在這裏下載的 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.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.ini

(1)在php.ini中添加如下兩條擴展:

extension=php_sqlsrv_56_ts.dll
extension=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.dll
extension=php_pdo_sqlsrv_56_nts.dll

(4)這時候你在phpinfo()中的PDO配置中會看見已經存在sqlsrv了。

這裏如果使用的php版本是64位的話,官網的 php_sqlsrv_xx_ts.dllphp_pdo_sqlsrv_xx.tl.dll 不起作用,網友收集了對應的64位版本dll,請到
http://pan.baidu.com/s/1kUCP7EJ
下載選擇對應版本即可。

下載安裝一個Microsoft® ODBC Driver 11 for SQL Server

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  COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI_KS_WS', 'CodePage')

下面是查詢結果對應表:

返回值 編碼信息
936 簡體中文GBK
950 繁體中文BIG5
437 美國/加拿大英語
932 日文
949 韓文
866 俄文
65001 unicode UFT-8
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章