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

PHP Laravel无法连接SQL Server:找不到驱动问题求助

解决Laravel连接SQL Server报「could not find driver」的方法
  • 严格匹配PHP版本、线程安全属性和位数与dll文件
    你使用的php_pdo_sqlsrv_80_ts_x64.dll对应PHP 8.0、线程安全(TS)、64位版本。创建phpinfo.php文件(内容为<?php phpinfo(); ?>)并访问,确认以下信息:

    • PHP版本为8.0.x
    • Thread Safety显示为enabled
    • Architecture为x64
      任何一项不匹配,dll都无法加载,需下载对应版本的SQL Server PHP扩展。
  • 确认dll文件位置与extension_dir配置
    将两个dll文件放到PHP安装目录下的ext文件夹(如C:\php\ext),打开php.ini检查extension_dir配置是否指向该目录:

    extension_dir = "ext"
    # 也可使用绝对路径:extension_dir = "C:\php\ext"
    
  • 安装ODBC Driver for SQL Server
    SQL Server的PHP扩展依赖官方ODBC驱动,必须安装对应位数的版本(x64对应x64驱动),推荐安装「ODBC Driver 17 for SQL Server」,安装完成后无需额外配置。

  • 重启Web服务器
    修改php.ini后,必须重启Apache、Nginx或IIS,否则新的扩展配置不会生效。

  • 验证扩展是否加载成功
    再次访问phpinfo.php页面,搜索pdo_sqlsrv和sqlsrv,若能找到对应的模块信息,说明扩展加载成功;若找不到,回到前面的步骤逐一排查。

  • 修正Laravel数据库配置
    使用Windows身份验证连接本地SQL Server时,调整config/database.php中的sqlsrv配置:

    'sqlsrv' => [
        'driver' => 'sqlsrv',
        'host' => env('DB_HOST', 'localhost'),
        'database' => env('DB_DATABASE', '你的数据库名'),
        'username' => '',
        'password' => '',
        'charset' => 'utf8',
        'prefix' => '',
        'trust_server_certificate' => true,
    ],
    

    同时在.env文件中设置:

    DB_CONNECTION=sqlsrv
    DB_HOST=localhost
    DB_DATABASE=你的数据库名
    DB_USERNAME=
    DB_PASSWORD=
    

内容的提问来源于stack exchange,提问作者Danh Trần

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:52:12