PHP 8.1连接SQL Server 2014提示找不到驱动的问题求助
PHP连接SQL Server 2014数据库报错:找不到驱动
操作过程
我尝试用PHP连接SQL Server 2014,具体操作如下:
- 编写
conexaosql.php连接类:
class Conexao { private static $connection; private function __construct(){} public static function getConnection() { $pdoConfig = DB_DRIVER . ":". "Server=" . DB_HOST . ";"; $pdoConfig .= "Database=".DB_NAME.";"; try { if(!isset($connection)){ $connection = new PDO($pdoConfig, DB_USER, DB_PASSWORD); $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); } return $connection; } catch (PDOException $e) { $mensagem = "Drivers disponiveis: " . implode(",", PDO::getAvailableDrivers()); $mensagem .= "\nErro: " . $e->getMessage(); throw new Exception($mensagem); } } }
- 调用连接类执行查询:
define('DB_HOST' , "xxxx"); define('DB_USER' , "xxxx"); define('DB_PASSWORD' , "xxxx"); define('DB_NAME' , "xxxx"); define('DB_DRIVER' , "sqlsrv"); require ("conexaosql.php"); try{ $Conexao = Conexao::getConnection(); $query = $Conexao->query("SELECT Pago FROM UTE02.dbo.Recibos"); $produtos = $query->fetchAll(); }catch(Exception $e){ echo $e->getMessage(); exit; }
报错信息
mysql,sqlite 错误:找不到驱动
环境信息
- PHP版本:8.1
- Web服务器:Apache
解决方法
安装SQL Server PDO驱动
报错显示可用驱动仅mysql和sqlite,说明PHP环境缺少pdo_sqlsrv驱动。针对PHP 8.1,需下载对应版本的驱动:- 下载适配PHP 8.1的SQL Server驱动包(需匹配系统架构x86/x64、PHP线程安全/非线程安全模式)
- 解压后将
php_pdo_sqlsrv.dll和php_sqlsrv.dll放入PHP的ext目录
启用驱动配置
打开php.ini文件,添加以下两行配置:
extension=pdo_sqlsrv extension=sqlsrv
保存后重启Apache服务器。
验证驱动加载状态
创建包含<?php phpinfo(); ?>的PHP文件,访问后搜索pdo_sqlsrv,确认模块存在即表示驱动加载成功。检查连接参数
确认DB_HOST配置正确,SQL Server连接格式通常为IP地址,端口(默认1433),本地实例可使用localhost\实例名称格式。
内容的提问来源于stack exchange,提问作者Bruno
相关产品推荐
相关产品推荐

