![](/img/trans.png)
[英]How to fix: PHP Startup: Unable to load dynamic library 'php_pdo_sqlsrv_80_nts_x64'?
[英]PHP Warning PHP Startup Unable to load dynamic library php_pdo_sqlsrv_7_ts_x64.dll
我正在尝试让 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_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.