讲师中心 微信公众号
AI工具推荐 视频效率加速

phpEnv下安装SQL Server驱动(sqlsrv)实战

冬强姑娘_4883

冬强姑娘_4883

发布时间:2026-05-05 18:09:19

|

911人浏览过

|

来源于php中文网

原创

phpEnv 下 sqlsrv 扩展安装失败主因是 PHP 架构(x64/x86)、线程模型(NTS/TS)、扩展 DLL 名称及系统 ODBC 驱动三者未严格匹配;须通过 php -i 确认架构与线程类型,下载对应版本 sqlsrv DLL(如 php_sqlsrv_81_nts_x64.dll),放入 ext 目录并配置 php.ini 启用 extension=sqlsrv 和 extension=pdo_sqlsrv,再安装 ODBC Driver 18 for SQL Server,并使用 localhost 而非 127.0.0.1 连接。

phpenv下安装sql server驱动(sqlsrv)实战

phpEnv 下装不了 sqlsrv,基本是因为扩展名、PHP 架构、ODBC 驱动三者没对齐——不是“没下载对”,而是“根本没匹配上”。

确认 phpEnv 的 PHP 架构和线程模型

phpEnv 默认打包的 PHP 多为 NTS(非线程安全)+ x64,但部分旧版或自定义包可能是 TS 或 x86。错配会导致 php_sqlsrv_*.dll 加载失败,且 php -m 不报错、extension_loaded('sqlsrv') 返回 false。

  • 打开终端,执行 php -v 看版本(如 8.1.22)
  • 执行 php -i | findstr "Architecture Thread"(Windows)或 php -i | grep -E "(Architecture|Thread)"(Linux/macOS),确认输出含 x64 和 NTS
  • 若显示 TS,必须用 _ts.dll;若显示 x86,不能用 _x64 后缀的 DLL

下载并启用正确的 sqlsrv 扩展 DLL

微软已停止为 phpEnv 这类集成环境单独打包,必须手动从官方驱动页选对应版本。当前(2026 年)最新稳定版是 SQLSRV 5.11,支持 PHP 8.0–8.3。

  • 访问 https://www.php.cn/link/7322c71e66f72ebb1cf52d9a6abc90ca,找 php_sqlsrv_81_nts_x64.zip(按你实际 PHP 版本调整)
  • 解压后,把 php_sqlsrv_81_nts_x64.dll 和 php_pdo_sqlsrv_81_nts_x64.dll 放进 phpEnv 对应 PHP 版本的 ext/ 目录(例如 phpenv/php/php-8.1.22/ext/)
  • 编辑该 PHP 版本的 php.ini(通常在 phpenv/php/php-8.1.22/conf/php.ini),末尾加两行:
    extension=sqlsrv
    extension=pdo_sqlsrv
    ⚠️ 不要写带完整路径或 .dll 后缀的写法,phpEnv 会自动识别

必须安装系统级 ODBC 驱动(Windows)

phpEnv 自带的 PHP 不带 ODBC 驱动,sqlsrv 扩展加载成功也不代表能连——连接时会直接报 Named Pipes Provider: Could not open a connection 或 TCP Provider: Error code 0x2746。

btpanel phpsite 宝塔面板PHP网站
btpanel phpsite 宝塔面板PHP网站

宝塔面板 PHP 网站管理:站点创建、删除、启停、PHP 版本切换、域名管理、SSL证书管理、伪静态管理、数据库管理

下载

立即学习“PHP免费学习笔记(深入)”;

  • 去 ODBC Driver 18 for SQL Server 下载安装程序(msi)
  • 运行安装,默认路径即可,无需重启,但需确保安装后有 C:\Windows\System32\msodbcsql18.dll
  • 验证:命令行执行 odbcad32 → “驱动程序”页签,能看到 ODBC Driver 18 for SQL Server

连接测试时 localhost 比 127.0.0.1 更可靠

SQL Server 默认启用命名管道(Named Pipes),而 phpEnv 下的 PHP 常因 TCP/IP 设置未开或防火墙拦截导致 127.0.0.1 连接被拒,错误信息常为 Connection refused 或 Server is not found or not accessible。

  • 用 localhost 代替 IP 地址:
    $conn = sqlsrv_connect('localhost', ['Database' => 'testdb', 'Uid' => 'sa', 'PWD' => 'xxx']);
  • 如果仍失败,检查 SQL Server 配置管理器 → “SQL Server 网络配置” → 对应实例的 “协议” → 确保 TCP/IP 和 Named Pipes 均为“已启用”
  • 连接字符串中不要硬编码端口(如 localhost,1433),除非明确禁用了动态端口且只用固定端口

最易被忽略的一点:phpEnv 切换 PHP 版本后,php.ini 是独立的,改了 A 版本的配置,B 版本依然无效;ODBC 驱动装一次就行,但扩展 DLL 必须每个 PHP 版本都放一份。

相关文章

驱动精灵
驱动精灵

驱动精灵基于驱动之家十余年的专业数据积累,驱动支持度高,已经为数亿用户解决了各种电脑驱动问题、系统故障,是目前有效的驱动软件,有需要的小伙伴快来保存下载体验吧!

下载

相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
PixTV
PixTV Hot

PixTV是一款面向AIGC内容创作的AI视频生成工具。

创客贴AI

创客贴AI是一款AI图像与设计工具,AI辅助的智能在线设计工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

超级简历WonderCV

一款AI办公效率工具,主要用于免费求职简历模版下载制作,应届生职场人必备简历制作神器,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

VibeKnow
VibeKnow Hot

一款AI视频创作工具,主要用于全球首个AI知识视频创作平台,文档、文章、网页,一键生成视频,适合需要提升相关任务效率的用户。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

11584

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

6681

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

2175

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

4228

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

4954

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

3891

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

5597

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

4382

2023.11.13

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

100

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
使用phpenv集成环境安装极致CMS
使用phpenv集成环境安装极致CMS

共2课时 | 301人学习

phpEnv手册
phpEnv手册

共0课时 | 0人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn