You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XAMPP3.3.0(PHP8.1.10)调用sqlsrv_connect()未定义函数报错求助

解决Call to undefined function sqlsrv_connect()报错问题

环境信息

  • XAMPP 3.3.0(内置PHP 8.1.10)
  • Microsoft SQL Server Management Studio 18

报错内容

Fatal error: Uncaught Error: Call to undefined function sqlsrv_connect() in C:\xampp\htdocs\treasureDoc\php\otentifikasi.php:5 Stack trace: #0 C:\xampp\htdocs\treasureDoc\index.html(45): otentifikasi('', '') #1 {main} thrown in C:\xampp\htdocs\treasureDoc\php\otentifikasi.php on line 5

已尝试操作

  • 下载PHP SQL Server驱动并解压至c:\xampp\php\ext目录
  • 安装ODBC Driver 18 for SQL Server
  • 在php.ini中添加extension=php_sqlsrv_81_ts.dll和extension=php_pdo_sqlsrv_81_ts.dll
  • 尝试过Stack Overflow相关问题的所有方案

排查与解决方案

  1. 确认驱动版本与PHP架构匹配
    创建phpinfo.php文件写入<?php phpinfo(); ?>,访问后查看Architecture(PHP架构,32/64位)和Thread Safety(线程安全状态),确保下载的驱动是对应架构的TS/NTS版本,二者必须完全匹配。

  2. 验证修改的php.ini是Apache加载的版本
    通过phpinfo()查看Loaded Configuration File项,确认当前生效的php.ini路径,避免修改了错误的配置文件。

  3. 检查驱动文件状态
    到c:\xampp\php\ext目录确认php_sqlsrv_81_ts.dll和php_pdo_sqlsrv_81_ts.dll存在且未损坏,右键查看文件属性,取消可能存在的“锁定”或“未信任”标记。

  4. 彻底重启Apache服务
    修改php.ini后必须在XAMPP控制面板中先停止Apache,等待几秒后再启动,确保配置完全生效,仅重载配置可能不生效。

  5. 尝试降级ODBC驱动版本
    ODBC Driver 18部分环境下兼容性不佳,可尝试安装ODBC Driver 17 for SQL Server,旧环境中该版本稳定性更强。

  6. 检查扩展加载日志
    重启Apache后访问phpinfo.php搜索sqlsrv,若未找到对应模块,查看phpinfo()中error_log路径下的日志文件,根据加载错误信息针对性排查(比如依赖缺失、文件路径错误等)。

内容的提问来源于stack exchange,提问作者Martin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 02:46:24