Laravel项目连接SQL Server提示需ODBC驱动问题排查求助
解决SQLSTATE[IMSSP]驱动依赖问题
1. 验证PHP扩展是否正确加载
- 新建
phpinfo.php文件,内容:<?php phpinfo(); ?> - 访问该文件,搜索
sqlsrv和pdo_sqlsrv,确认两个扩展都已显示(未找到则说明扩展未正确加载) - 检查XAMPP的
php.ini文件,确保添加以下两行(路径需匹配你的扩展文件位置):
注意:必须选择**线程安全(TS)**版本的扩展,XAMPP默认是线程安全的PHP环境extension=php_sqlsrv_82_ts.dll extension=php_pdo_sqlsrv_82_ts.dll
2. 确认ODBC驱动版本匹配
- 打开64位ODBC数据源管理器,在「驱动」标签下查看是否存在ODBC Driver 17或18 for SQL Server(必须是64位版本,与XAMPP的PHP架构一致)
- 确保ODBC驱动版本与PHP扩展兼容:PHP 8.2需搭配ODBC Driver 17.8+或18.x版本
3. 检查Laravel数据库配置
- 打开
config/database.php,确认SQL Server连接配置正确:'sqlsrv' => [ 'driver' => 'sqlsrv', 'host' => env('DB_SQLSRV_HOST', 'localhost'), 'port' => env('DB_SQLSRV_PORT', '1433'), 'database' => env('DB_SQLSRV_DATABASE', ''), 'username' => env('DB_SQLSRV_USERNAME', ''), 'password' => env('DB_SQLSRV_PASSWORD', ''), 'charset' => 'utf8', 'prefix' => '', 'prefix_indexes' => true, ], - 核对
.env文件中对应的SQL Server环境变量,确保无拼写错误
4. 重启服务并验证
- 完全重启XAMPP的Apache服务(停止后再启动,不要仅刷新)
- 运行Laravel数据库测试命令(替换
sqlsrv为你的实际连接名称):
查看是否能成功建立连接php artisan db:connect --database=sqlsrv
5. 排查架构不匹配问题
- 确认XAMPP、ODBC驱动、PHP扩展三者均为64位版本(禁止混合32/64位架构)
- 若之前安装过32位驱动,需彻底卸载后重新安装64位版本
内容的提问来源于stack exchange,提问作者Sahim Sakir
相关产品推荐
相关产品推荐

