繁体   English   中英

PHP 警告 PHP 启动无法加载动态库 php_pdo_sqlsrv_7_ts_x64.dll

[英]PHP Warning PHP Startup Unable to load dynamic library php_pdo_sqlsrv_7_ts_x64.dll

  • 操作系统:Windows 8.1
  • 拱:x64
  • php: PHP 7.1.6
  • mssql:Mssql Server 2014 express
  • 驱动程序:SQLSRV 4.0
  • IDE:PhpStorm

我正在尝试让 mssql 驱动程序工作。 我从微软下载了 pdo 驱动程序,将文件php_pdo_sqlsrv_7_nts_x64.dll放入C:\\Program Files\\PHP\\ext并编辑php.ini以添加extension=php_pdo_sqlsrv_7_nts_x64.dll到它。

这是结果:

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Program Files\PHP\ext\php_pdo_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
 in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library 'C:\Program Files\PHP\ext\php_sqlsrv_7_nts_x64.dll.dll' - The specified procedure could not be found.
 in Unknown on line 0
PHP 7.1.6 (cli) (built: Jun  8 2017 01:53:41) ( ZTS MSVC14 (Visual C++ 2015) x64 )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies

可能与此重复: PHP 警告:PHP 启动:无法加载动态库 php_pdo_mssql.dll

但是那个人从来没有回答过,而且已经四岁了。

就我而言,此错误(但具有不同的 DLL 版本)是由于将错误的 PHP SQL SLQSRV DLL 添加到我的 PHP 扩展中引起的:

我正在使用 XAMPP 的 PHP 7.2.21。

我添加了这些 DLL(包含在 SQLSRV561.exe 中):

  • php_pdo_sqlsrv_72_ts_x64.dll
  • php_pdo_sqlsrv_72_ts_x86.dll
  • php_pdo_sqlsrv_72_nts_x64.dll
  • php_pdo_sqlsrv_72_nts_x86.dll

我启用了php_pdo_sqlsrv_72_nts_x64.dll作为 PHP 扩展名,但是nts dll 版本对于我的 PHP 版本来说是错误的。 当我启用ts dll 版本时,错误消失了。 (我正在使用 IIS。)

线程安全 (TS) 和非线程安全 (NTS) 是可用的两种不同的 PHP 版本。

查看发布信息是个好主意。
这样你就可以看到它支持什么版本。

https://github.com/Microsoft/msphpsql/releases

就我而言,mssql 驱动程序仍然是 php 最新稳定版本的一个次要版本,因此我必须将 php 从 7.1 降级到 7.0。

你的 PHP 版本线程安全吗? 您正在使用此版本的库,您可以在 Windows 的命令行中使用"php -i|find "Thread"

我使用 php_pdo_sqlsrv_73_nts_x64.dll 在 windows server 2019 和 IIS10 上使用 PHP732 尝试了这个,工作正常,没有问题。 如果我启用 73_ts_x64,它会发出警告。

暂无
暂无

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

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