PHP 连接 SQLSERVER的心得体会
(1)下载PHP驱动
最高只有PHP7.0支持SQL2008 更高的PHP7.1不再支持SQL2008,所以我们只能使用PHP7.0
从微软下载PHP的驱动,只能使用4.0版本的,更高的4.3版本的驱动可以支持7.1,但4.3版本不再支持SQL2008了
https://docs.microsoft.com/zh-cn/sql/connect/php/microsoft-php-drivers-for-sql-server-support-matrix
下载回来的SQLSRV40.EXE
里面文件是的驱动文件,可以winrar解压出来,不需要安装的。
文件分4种DLL文件,x86和X64位的,TS和NTS线程安全,拷到对应的版本中
phpStudy 使用的是nts下的x86文件
WAMP3.1.4 使用的是ts下的x64文件
(2)安装PHP驱动
解压出来的文件放在目录下
C:\phpStudy\PHPTutorial\php\php-7.0.12-nts\ext
使用方法: C:\phpStudy\PHPTutorial\php\php-7.0.12-nts\php.ini 文件中第900行,增加2行
extension=php_pdo_sqlsrv_7_nts_x86.dll
extension=php_sqlsrv_7_nts_x86.dll
经验:虽然操作系统是Win2008r2是64位的,但只能使用x86的DLL文件php_sqlsrv_7_nts_x86.dll
切换使用x64文件总是失败,可能是phpStudy的问题,
phpStudy使用服务模式没成功,切换到进程模式成功了
检查成功失败的方法是打开 phpinfo.php文件,找到pdo节点可以看到
PDO drivers : mysql, sqlite, sqlsrv
pdo_sqlsrv 说明加载dll成功
(3) 安装ODBC驱动 V13
操作系统是Win2008r2是64位,安装X64的安装包。虽然使用的是php_sqlsrv_7_nts_x86.dll,但ODBC还是要装64位
不要安装Microsoft ODBC Driver 17 for SQL Server 也不要安装V13.1
https://docs.microsoft.com/zh-cn/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-2017
下载回来的msodbcsql.msi
经验:如果不安装ODBC,仅安装php驱动4.0是不可以成功连上数据的。
杭州 fth 2018.12.10 深夜