PHP警告:PHP启动时无法加载动态库'-指定的过程找不到。位于未知的第0行。

5

我想将PHP版本更改为7.1,但出现了一个错误:

PHP Warning:  PHP Startup: Unable to load dynamic library 

    'C:\Program Files\PHP\v7.1\ext\php_sqlsrv_7_nts_x86.dll' - The specified procedure could not be found.
     in Unknown on line 0

首先,这不是重复的问题,因为我已经检查了许多类似的问题。我正在使用 IISPHP 7.1SQL Server(这就是为什么我需要 sqlsrv 驱动程序)。我已经检查了 php.ini 文件,并将 extension-dir 路径更改为完整路径,但什么也没发生。(逻辑上,如果路径有问题,为什么其他扩展可以正常工作呢?) 它可以在 PHP 7.0.7 中正常工作(所有启用的扩展名都完全相同)。

更新:仍然无法工作,但我尝试将错误消息中的路径粘贴到文件浏览器中,发现文件已经存在。


检查您的配置是64位还是32位,它正在尝试加载32位版本,可能是因为您的PHP是64位版本。您可以在PHP网站https://pecl.php.net/上下载它。 - Fky
@Fky PHP 是 7.1 x86 nts 版本,正如您所看到的,pdo 也是 x86nts 版本。 - Klapsius
3个回答

6
原来PHP7.0和PHP7.1不兼容,而且mssql PDO驱动只适用于7.0版本。Github这里有相关问题讨论。
此外,请确保您包含正确的64/86位和ts/nts版本。

6
根据Toby Allen的上述答案,7.0和7.1是不兼容的。
然而,微软已经发布了7.1的驱动程序预览版。这对我有用,希望能帮助到任何在搜索的人。
驱动程序可以在此处找到:下载页面

1

我昨天也遇到了这个问题。错误的关键在于最后一部分。

指定的过程找不到。

在我的情况下,我进行了痛苦的调试。我注意到的第一件事是,当我运行一个hello world的php文件时,我没有得到这个错误。这表明对我来说实际上并不是加载文件的问题,而是调用文件中的函数的问题。

我不断地加入die()语句,并移动它直到出现错误。虽然花了一些时间,但我最终发现我正在使用(显然)无效的选项调用sqlsrv_connect。

所以,如果没有看到实际导致错误的代码,我无法确定您的问题的确切原因,但我希望这至少能为您指明正确的方向。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接