1.查看php是否是线程安全版本
查看phpinfo,找到Thread Safety,查看值为多少,disabled为非线程安全,enabled为线程安全版本。
2. 从微软官网上下载sqlsrv扩展
百度网盘:
SQLSRV40.EXE
https://pan.baidu.com/s/1dFuWyeH
SQLSRV32.EXE
https://pan.baidu.com/s/1hsgDj1a
微软官网:
http://www.microsoft.com/en-us/download/details.aspx?id=20098
下载链接地址有四个文件:
•SQLSRV30.EXE
•SQLSRV31.EXE
•SQLSRV32.EXE
•SQLSRV40.EXE
分别支持不同的PHp版本
•Version 4.0 supports PHP 7.0+
•Version 3.2 supports PHP 5.6, 5.5, and 5.4
•Version 3.1 supports PHP 5.5 and 5.4
•Version 3.0 supports PHP 5.4.
下载之后解压:
根据php版本号找到相应的驱动版本,其中包含n的为非线程安全版。
例如我的php版本为5.6线程安全版本,则应该复制php_sqlsrv_56_ts.dll和php_pdo_sqlsrv_56_ts.dll复制到php目录的ext文件夹下。
之后查看phpinfo可以看到扩展已经安装好了。
3. 修改php.ini配置文件:打开php.ini配置文件,在其中加上复制到php扩展中的dll库
extension=php_sqlsrv_55_nts.dll
extension=php_pdo_sqlsrv_55_nts.dll
重启apache或nginx服务器即可。
4. 安装odbc驱动
百度网盘链接:
https://pan.baidu.com/s/1dFgdrjV
微软:
https://www.microsoft.com/zh-cn/download/details.aspx?id=36434
5. 安装成功
连接测试:
$servern="localhost"; $coninfo=array("Database"=>"dbo","UID"=>"guansixu","PWD"=>"guansixu"); $conn=sqlsrv_connect($servern,$coninfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } sqlsrv_close($conn);
PDO方式:
$servern="localhost"; $coninfo=array("Database"=>"dbo","UID"=>"guansixu","PWD"=>"guansixu"); $conn=sqlsrv_connect($servern,$coninfo); if( $conn ) { echo "Connection established.<br />"; }else{ echo "Connection could not be established.<br />"; die( print_r( sqlsrv_errors(), true)); } $val=sqlsrv_query($conn,"select * from usertable"); while($row=sqlsrv_fetch_array($val)){ echo $row[1]."<br />"; } sqlsrv_close($conn);
附上驱动打包下载: