IIS 上的 PHP 无法加载 sqlsrv 扩展

IIS 上的 PHP 无法加载 sqlsrv 扩展

我正在尝试整合一个页面,该页面可以通过 PHP 将表单中的数据提交到 MSSQL 数据库。我已成功安装了 PHP(phpinfo()即使在远程计算机上也能正常运行),但它无法加载sqlsrv 扩展。我知道我正在编辑正确的php.ini文件,因为我添加了另一个扩展(wincache)并且它加载正常,这已通过phpinfo()和得到确认get_loaded_extensions()

日志没有告诉我任何信息。IIS 上的 PHP 管理器告诉我已启用 sqlsrv 扩展文件。我重启了网站、服务器和计算机,但什么都没用。

我在 Windows 7 Ultimate 机器上使用 PHP 7.1.1。它以 x64 模式、非线程安全运行。我已确保启用的扩展文件是 x64、非线程安全的。我不知道还要检查什么或需要提供哪些更多信息。

编辑:我跑php-cgi.exe这一页建议,并出现错误消息:

[31-Mar-2017 22:38:12 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
 in Unknown on line 0
[31-Mar-2017 22:38:17 UTC] PHP Warning:  PHP Startup: Unable to load dynamic library 'C:\Program Files\iis express\PHP\v7.1\ext\php_pdo_sqlsrv_7_nts_x64.dll' - The specified procedure could not be found.
 in Unknown on line 0

这是否意味着问题出在扩展 DLL 本身?我该如何修复它?

答案1

slqsrv 扩展似乎尚不支持 PHP 7.1

在撰写本文时(2017 年 7 月),预览版本可以下载了,所以我想正式版应该很快就要发布了

答案2

我确信您现在已经明白了,但是对于遇到此类错误的人,请确保您使用的是正确版本的 DLL,即。。php_sqlsrv_VERSION_THREADSAFETY_ARCHITECTURE.dll因此,请使用php_sqlsrv_71_nts_x86.dll与您的机器和设置兼容的版本。

相关内容