- 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.ini
将extension=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。