我正在尝试整合一个页面,该页面可以通过 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
在撰写本文时(2017 年 7 月),预览版本可以下载了,所以我想正式版应该很快就要发布了
答案2
我确信您现在已经明白了,但是对于遇到此类错误的人,请确保您使用的是正确版本的 DLL,即。。php_sqlsrv_VERSION_THREADSAFETY_ARCHITECTURE.dll
因此,请使用php_sqlsrv_71_nts_x86.dll
与您的机器和设置兼容的版本。