PHP 中原来自带的 php_mssql.dll 已经不再支持高版本 SQL Server,如需支持 SQLServer 需要安装 PHP 对 MSSQL 连接的驱动扩展,话说容易出错的地方其实只是下载的的文件对不对,其它没什么复杂的。
下载一个SQL Server Driver for PHP
根据你的php版本选择对应的安装包。由于我的PHP版本是5.6,所以我下载的是 SQLSRV32.EXE, 运行后解压得到好多 dll 文件:
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 版本选择对应的 dll,注意 nts 和 ts 还有 x86 和 x64 不能错。有两个 dll 分别是带 pdo 和没有 pdo 的拷贝到 php/ext 目录下。
配置php.ini,在php.ini中添加如下两条扩展:
; 注意这里用的 dll 要和 php 版本匹配,ts 和 nts 要分清楚,包括 php7 时 x86 还是 x64,微酷测试不对应会加载失败。
extension=php_sqlsrv_56_nts.dll
extension=php_pdo_sqlsrv_56_nts.dll
修改以下参数为on:
mssql.secure_connection = on
重启 IIS 或 apache 这时候你在 phpinfo() 中的 PDO 配置中会看见已经存在 sqlsrv 了。
网上说还要下载安装一个Microsoft® ODBC Driver 11 for SQL Server,微酷好似没装也可以,可能安装其它软件时安装了吧,自己试试。
配置的难点在于确定php版本以及SQL Server Driver for PHP的对应关系,可参考如图: