XAMPP环境下Microsoft PHP SQL Server驱动加载及sqlsrv_connect函数异常问题
PHP sqlsrv_connect() 未定义错误排查(XAMPP + PHP 8.0.3)
问题背景
使用XAMPP搭建服务器,PHP版本为8.0.3,初期因安装PHP 83版本的sqlsrv扩展,启动时出现动态库加载警告;更换为PHP 80版本的扩展后警告消失,但仍报错Call to undefined function sqlsrv_connect()。
排查与解决步骤
确认扩展与PHP环境完全匹配
- 检查
C:\xampp\php\ext目录下的扩展文件,需为php_sqlsrv_80_ts_x64.dll和php_pdo_sqlsrv_80_ts_x64.dll,需与PHP的ZTS、x64、VC2019(VC16)版本严格对应。 - 打开php.ini文件,确保启用语句正确:
部分PHP版本支持简化写法extension=php_sqlsrv_80_ts_x64.dll extension=php_pdo_sqlsrv_80_ts_x64.dllextension=sqlsrv和extension=pdo_sqlsrv,但建议写完整前缀避免歧义。
- 检查
验证扩展是否成功加载
- 运行命令行指令
php -m,查看输出列表中是否包含sqlsrv和pdo_sqlsrv模块,若无则说明扩展未加载。 - 创建
phpinfo.php文件,内容为:
访问该文件后搜索<?php phpinfo(); ?>sqlsrv,确认存在相关配置项。
- 运行命令行指令
安装依赖的ODBC驱动
sqlsrv扩展依赖Microsoft ODBC Driver for SQL Server,需安装适配PHP 8.0的版本(推荐ODBC 17或18),安装完成后重启Apache服务。
确认修改的是正确的php.ini文件
- 运行
php --ini指令,查看Loaded Configuration File对应的路径,确保你编辑的是该路径下的php.ini(XAMPP中Apache和CLI可能使用不同的配置文件)。
- 运行
强制重启服务
修改php.ini后,必须完全关闭并重启Apache服务器及PHP CLI进程,确保配置变更生效。
内容的提问来源于stack exchange,提问作者r rr
相关产品推荐
相关产品推荐

