我正在尝试让mssql驱动程序工作。
我从microsoft下载了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 Warning: PHP Startup: Unable to load dynamic library php_pdo_mssql.dll
但那个人从来没有回答过,而且已经四岁了。
答案 0 :(得分:1)
查看发布信息是个好主意 这样你就可以看到它支持的版本。
https://github.com/Microsoft/msphpsql/releases
在我的情况下,mssql驱动程序仍然是php最新稳定版本的一个次要版本,因此我必须将我的php从7.1降级到7.0。
答案 1 :(得分:0)
您的PHP版本是否是线程安全的?您正在使用此版本的库,您可以在Windows中使用命令行中的"php -i|find "Thread"
。
答案 2 :(得分:0)
对于我来说,此错误(但具有不同的DLL版本)是由于向我的PHP扩展中添加了错误的PHP SQL SLQSRV DLL引起的:
我正在使用XAMPP的PHP 7.2.21。
我添加了这些DLL(包含在SQLSRV561.exe中):
我启用了php_pdo_sqlsrv_72_nts_x64.dll
作为PHP扩展名,但是 nts dll版本对于我的PHP版本来说是错误的版本。当我启用 ts dll版本时,错误消失了。 (我正在使用IIS。)
线程安全(TS)和非线程安全(TS)是两种不同的PHP 可用的版本。