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
相关产品推荐
相关产品推荐

