繁体   English   中英

找不到驱动程序 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

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

根据评论的建议后:

我从以下链接安装了驱动程序: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 扩展要到 1 月底才会发布。 当 7.4 推出时我遇到了同样的问题,我不得不等待几个月才能为我们的 Windows 服务器发布适当的 dll。 如果我发现它已发布,我会尽量记住回来更新链接。

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

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

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

http://localhost/info.php。

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

<?php 
phpinfo(); 
?>

I have PHP Version 8.0.3 And in the PDO section you will find PDO support PDO drivers, there you must find sqlsrv active if all goes well, as well as a section on pdo_sqlsrv with version 5.9.0 enabled.

PDO Active Drivers 部分,如果它们未显示在启用列中,则有问题

Microsoft Drivers 5.9 下载 SQLSRV59.EXE for PHP for SQL 服务器是最新的通用 (GA) 版本

您必须执行下载的文件,然后在文件夹中复制与您需要的版本相对应的.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但如果不安装它,您将需要

适用于 SQL 服务器的 Microsoft ODBC 驱动程序 17

In the window XAMPP Control Panel search the CONFIG button the Apache Module, and select the option PHP (php.ini)

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

在 php.ini 中搜索扩展部分

; 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 服务器。 按下停止按钮然后开始

希望对你有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM