PHP连接SQLSever数据库(PHP7+SQLServer)
2022-07-28 15:20:24
114
{{single.collect_count}}

问题:在PHP+Apache+MySQL环境下(windows系统),链接SQLServer数据时,出现“can not find driver”问题。

解决方法:在php.ini文件下开启 php_sqlsrv_7_nts_x86.dll 和 php_pdo_sqlsrv_7_nts_x86.dll 扩展,所需步骤共4步

准备工作:获取php_sqlsrv_7_nts_x86.dll 和 php_pdo_sqlsrv_7_nts_x86.dll ,扩展文件获取地址:https://docs.microsoft.com/zh-cn/sql/connect/php/download-drivers-php-sql-server?view=sql-server-2017,请根据自己的php版本选择下载)。下载完成之后 不需要安装,只需要解压然后获取各种扩展文件

步骤一:将获取到的扩展文件复制到php安装目录的的ext文件下,比如我的就是:D:\phpStudy\PHPTutorial\php\php-7.0.12-nts\ext;

步骤二:修改php.ini文件,开启扩展:

extension=php_pdo_sqlsrv_7_nts_x86.dllextension=php_sqlsrv_7_nts_x86.dll

这里需要注意extension_dir是否指向了正确的路径

extension_dir = "ext"

步骤三:重启环境(apache/nginx等)

步骤四:windows用户还需下载安装msodbcsql.msi系统驱动,下载地址为:https://www.microsoft.com/en-us/download/details.aspx?id=36434(如果您的系统已经安装了msodbcsql.msi驱动,可以忽略这一步)

注意:不同的版本需开启的扩展文件名有一定的差异,如我的php版本php-7.0.12-nts,那么对应的扩展文件名叫php_sqlsrv_7_nts_x86.dll与php_pdo_sqlsrv_7_nts_x86.dll,但文件的前面部分基本不会变,如:php_pdo_sqlsrv_xxx.dll。

除了需要注意PHP版本问题以外,还需要注意你安装的php是32位(X86)的还是64位的,通过打印phpinfo()可以查看自己的php版本想详情,如下图:

php版本信息

回帖
全部回帖({{commentCount}})
{{item.user.nickname}} {{item.user.group_title}} {{item.friend_time}}
{{item.content}}
{{item.comment_content_show ? '取消' : '回复'}} 删除
回帖
{{reply.user.nickname}} {{reply.user.group_title}} {{reply.friend_time}}
{{reply.content}}
{{reply.comment_content_show ? '取消' : '回复'}} 删除
回帖
收起
没有更多啦~
{{commentLoading ? '加载中...' : '查看更多评论'}}