PHP无法加载sqlsrv扩展求助:Laravel连接SQL Server遇加载错误
Laravel对接SQL Server驱动加载失败的解决办法
问题情况
尝试用PHP实现Laravel与SQL Server对接时,已下载适配x64设备的两个驱动,但PHP启动时抛出警告:
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_sqlsrv_82_ts_x64.dll' (tried: ext\pdo_sqlsrv_82_ts_x64.dll (找不到指定的模块), ext\php_pdo_sqlsrv_82_ts_x64.dll.dll (找不到指定的模块)) in Unknown on line 0
相关截图:

排查与解决步骤
1. 修正驱动文件名与配置的匹配
- 检查PHP安装目录下
ext文件夹内的驱动文件名,若实际文件为php_pdo_sqlsrv_82_ts_x64.dll,需在php.ini中写入完整文件名(无需重复添加.dll后缀):extension=php_pdo_sqlsrv_82_ts_x64 extension=php_sqlsrv_82_ts_x64 - 避免只写
pdo_sqlsrv_82_ts_x64,否则PHP会自动补全前缀导致找不到文件。
2. 确认驱动与PHP环境完全匹配
- 驱动的PHP版本(如82对应PHP 8.2)、线程安全(TS/NTS)、架构(x64)必须和当前PHP环境一致。可通过
phpinfo()查看以下核心信息:- PHP版本号
- Thread Safety状态
- 系统架构类型
3. 安装必备的ODBC驱动
- SQL Server PHP驱动依赖ODBC Driver 17 for SQL Server及以上版本,需下载安装对应x64版本的ODBC驱动,否则即使PHP驱动文件正确,也会触发“找不到指定模块”的错误。
4. 验证驱动加载状态
- 修改配置后重启Web服务器(如Apache/Nginx)或CLI环境,运行
php -m命令,查看输出列表中是否包含pdo_sqlsrv和sqlsrv;也可通过phpinfo()页面搜索这两个模块,确认是否加载成功。
内容的提问来源于stack exchange,提问作者Yeiye
相关产品推荐
相关产品推荐

