phpenv是轻量级php多版本管理工具,不集成web服务器,需手动验证ts/nts、架构及php.ini路径,严格匹配sqlsrv扩展命名与extension_dir,并启用tcp/ip协议及odbc驱动方可成功连接sql server。

phpEnv 是 Windows 下轻量级的 PHP 多版本环境管理工具,它不自带 Apache/Nginx,靠 CLI 或外部 Web 服务运行,因此扩展加载逻辑和 XAMPP/WAMP 不同——php.ini 路径唯一、无双配置文件干扰,但容易漏掉 extension_dir 指向或驱动架构错配。
确认当前 PHP 实际运行参数(TS/NTS + 架构 + 版本)
phpEnv 默认不暴露 CLI 的详细信息,必须手动验证:
- 在终端执行
php -v看主版本(如PHP 8.1.23) - 执行
php -i | findstr "Thread Safety",输出enabled表示 TS,disabled表示 NTS - 执行
php -i | findstr "Architecture",确认是x64还是x86 - 别信 phpEnv 界面显示的“PHP 8.1”,实际可能是你手动切换的某个 ZIP 包,得以
php -v为准
下载并放置正确的 sqlsrv 扩展 DLL
微软官方驱动包(如 Microsoft Drivers for PHP for SQL Server)按 PHP 版本+TS/NTS+架构严格命名,错一个就加载失败,且错误日志里只报 Unable to load dynamic library 'sqlsrv',不提示原因。
- 去 微软下载页 找对应 ZIP(例如 PHP 8.1 NTS x64 →
php_sqlsrv_81_nts_x64.dll) - 解压后只取
php_sqlsrv_*.dll和php_pdo_sqlsrv_*.dll两个文件(PDO 用后者,原生 API 用前者) - 放进 phpEnv 当前激活版本的
ext/目录(路径类似C:\phpenv\versions\8.1.23\ext\),不是全局 ext - 检查
php.ini中extension_dir是否指向这个ext/目录(如extension_dir = "C:\phpenv\versions\8.1.23\ext")
启用扩展并验证是否加载成功
phpEnv 下没有 Apache 配置冲突,但容易忽略两件事:一是没改对正在用的 php.ini,二是扩展名写错。
- 用
php --ini确认加载的是哪个php.ini(通常在C:\phpenv\versions\8.1.23\下) - 在该
php.ini末尾添加(只选其一):extension=php_sqlsrv_81_nts_x64.dll
或extension=php_pdo_sqlsrv_81_nts_x64.dll - 重启终端,运行
php -m | findstr sqlsrv,有输出即成功;若为空,检查 DLL 文件名是否与extension=后完全一致(包括大小写、下划线、版本号) - 若用 PDO,还需确认
extension=pdo已启用(phpEnv 默认一般已开)
连接时服务器地址不能写 127.0.0.1 或 localhost(默认走命名管道)
SQL Server 默认禁用 TCP/IP,本地连接若写 localhost 或 127.0.0.1,会尝试命名管道失败,报错 命名管道提供程序: 无法打开与 SQL Server 的连接 或 由于目标计算机积极拒绝,无法连接。
- 用 SQL Server 配置管理器 → SQL Server 网络配置 → 启用
TCP/IP协议,并确认 IP 地址选项卡中IPAll的TCP Port是1433(或自定义端口) - 连接字符串改用
tcp:127.0.0.1,1433或SERVERNAME\SQLEXPRESS(实例名) - PDO DSN 示例:
sqlsrv:server=tcp:127.0.0.1,1433;Database=testdb; - 原生
sqlsrv_connect()示例:$conn = sqlsrv_connect('tcp:127.0.0.1,1433', ['Database'=>'testdb', 'Uid'=>'sa', 'PWD'=>'123456']);
最常被跳过的环节是 ODBC 驱动——即使扩展加载成功,sqlsrv_connect() 仍可能报找不到驱动,这时必须安装 Microsoft ODBC Driver for SQL Server(最新版即可,不用匹配 PHP 驱动版本)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











