找不到驱动程序 sqlsrv PHP 8.0.1

Could not find driver sqlsrv PHP 8.0.1

我目前正在尝试启用 pdo_sqlsrv 扩展程序。

我从这里下载了驱动程序:https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15

然后将它们添加到文件夹php/ext/

之后,我将以下行添加到 php.ini

extension=php_sqlsrv_72_ts.dll

错误日志显示如下:

[12-Jan-2021 16:06:23 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'php_sqlsrv_72_ts.dll' (tried: C:\php\ext\php_sqlsrv_72_ts.dll (Impossível localizar o módulo especificado), C:\php\ext\php_php_sqlsrv_72_ts.dll.dll (Impossível localizar o módulo especificado)) in Unknown on line 0

我已经尝试过,也只需添加以下行:

extension=php_pdo_sqlsrv

错误日志文件显示:

[12-Jan-2021 16:17:55 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'php_pdo_sqlsrv' (tried: C:\php\ext\php_pdo_sqlsrv (Impossível localizar o módulo especificado), C:\php\ext\php_php_pdo_sqlsrv.dll (Impossível localizar o módulo especificado)) in Unknown on line 0

注意:我在 IIS 中使用 PHP。 pdo_odbc 等其他驱动程序也可以工作。我只有这一个有问题。

根据评论提出建议后:

我从以下 link 安装驱动程序:pecl.php.net/package/pdo_sqlsrv/5.9.0beta2/windows

添加到 php.ini

extension=pdo_sqlsrv

错误日志文件仍然显示找不到模块:

[12-Jan-2021 20:59:17 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'pdo_sqlsrv' (tried: C:\php\ext\pdo_sqlsrv (Impossível localizar o módulo especificado), C:\php\ext\php_pdo_sqlsrv.dll (Impossível localizar o módulo especificado)) in Unknown on line 0

据我在 PHP 8 发布后的了解,pdo_sqlsrv 的 dll 扩展要到一月底才能发布。当 7.4 推出时我遇到了同样的问题,我不得不等待几个月才能为我们的 Windows 服务器发布适当的 dll。如果我发现它已发布,我会尽量记得回来更新 link。

我发现自己遇到了类似的情况,在安装 SQLSRV 驱动程序以在 PHP 中使用 PDO 并连接到我的 Microsoft SQLServer 服务器时遇到了困难,在我的特定情况下,我在本地安装了 XAMPP

要测试和检查我拥有的 PHP 版本并验证我的驱动程序是否可以工作,请使用以下命令:

创建 info.php 并在浏览器本地执行此文件

http:///localhost/info.php.

重要的是,您必须将它放在您的 C:\xampp\htdocs 文件夹中,在我的例子中,我使用的是 XAMPP

<?php 
phpinfo(); 
?>

我有 PHP 版本 8.0.3 在 PDO 部分你会发现 PDO 支持 PDO 驱动程序,如果一切顺利,你必须找到 sqlsrv 活动,以及 pdo_sqlsrv 启用版本 5.9.0。

PDO Active Drivers Section 如果它们没有显示在启用列中,则有问题

从 SQLSRV59.EXE 下载 Microsoft Drivers 5.9 for PHP for SQL Server is the latest general availability (GA) version

您必须执行下载的文件,然后将与您所需版本对应的 .dll 文件复制到文件夹中

C:\xampp\php\ext

我复制下一个文件(我的 windows 是 x64 和 PHP 8.0.3)

php_pdo_sqlsrv_80_nts_x64.dll php_pdo_sqlsrv_80_ts_x64.dll php_sqlsrv_80_nts_x64.dll php_sqlsrv_80_ts_x64.dll

在此下载中,您将找到 .dll x86 和 x64

php_pdo_sqlsrv73 php_pdo_sqlsrv74 php_pdo_sqlsrv80

我安装了 Microsoft SQL Management Studio 18 但如果不安装它,您将需要

Microsoft ODBC Driver 17 for SQL Server

在 window XAMPP 控制面板中搜索 Apache 模块的配置按钮,然后 select 选项 PHP (php.ini)

添加此行(根据您在文件夹中复制的 .dll 文件的名称)

在 php.ini 部分 EXTENSIONS

中搜索
; Mi CONFIGURACIÓN SQL SERVER
extension=php_pdo_sqlsrv_80_nts_x64.dll
extension=php_pdo_sqlsrv_80_ts_x64.dll
extension=php_sqlsrv_80_nts_x64.dll
extension=php_sqlsrv_80_ts_x64.dll

保存文件并重启apache服务器。按停止键再开始

希望你觉得有用