PHP 8.1连接SQL Server数据库失败求助
解决PHP 8.1连接SQL Server的ODBC驱动错误
问题原因
你安装的ODBC Driver 11不兼容PHP 8.1的sqlsrv扩展,同时驱动管理器无法匹配到合适的驱动版本,导致连接失败。
修复步骤
- 安装兼容的ODBC驱动版本:PHP 8.1要求使用ODBC Driver 17或更高版本,Driver 11仅支持到PHP 7.0系列,必须安装对应x64版本的驱动。
- 确保架构完全匹配:
- 确认ODBC驱动是x64版本,与Windows Server 2016系统架构一致
- 调整IIS应用池设置:右键目标应用池 → 高级设置 → 将「启用32位应用程序」设置为False
- 验证PHP扩展加载状态:
- 打开
php.ini,确认已启用extension=sqlsrv和extension=pdo_sqlsrv(如果使用PDO连接) - 创建
phpinfo.php文件,内容为<?php phpinfo(); ?>,访问后搜索「sqlsrv」,确认扩展已成功加载
- 打开
- 显式指定驱动版本:
在连接配置数组中添加驱动参数,避免驱动管理器自动选择错误版本:$credInfo = array( "Database" => (string) $SQLserverConfigFile->DB, "UID" => (string) $SQLserverConfigFile->UID, "PWD" => (string) $SQLserverConfigFile->PWD, "Driver" => "{ODBC Driver 17 for SQL Server}" // 替换为你实际安装的驱动版本 ); - 重启服务生效:安装驱动和修改配置后,执行
iisreset命令重启IIS服务,确保所有配置生效
额外检查项
- 确认服务器与SQL Server实例网络连通(可通过ping测试)
- 确保SQL Server允许远程连接,且使用的账号拥有目标数据库的读写权限
内容的提问来源于stack exchange,提问作者Rafiq Reefat
相关产品推荐
相关产品推荐

