PHP警告PHP启动无法加载动态库PHP_PDO_SQLSRV_7_TS_X64.DLL


  • OS:Windows 8.1
  • Arch:X64
  • PHP:PHP 7.1.6
  • MSSQL:MSSQL Server 2014 Express
  • 驱动程序:SQLSRV 4.0
  • IDE:phpstorm

我正在尝试让MSSQL驱动程序工作。我从Microsoft下载了PDO驱动程序,将文件php_pdo_sqlsrv_7_nts_x64.dll放入C:Program FilesPHPext中,并编辑了php.iniextension=php_pdo_sqlsrv_7_nts_x64.dll添加到它。

这是结果:

$ php -v
PHP Warning:  PHP Startup: Unable to load dynamic library 'C:Program FilesPHPextphp_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 FilesPHPextphp_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

i启用了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上使用php732使用PHP732尝试了此操作。如果我启用73_TS_X64。

,它会发出警告。

最新更新