【问题标题】:PHP Warning: PHP Startup: Unable to load dynamic library '- The specified procedure could not be found. in Unknown on line 0PHP 警告:PHP 启动:无法加载动态库'- 找不到指定的过程。在第 0 行的未知中
【发布时间】:2016-12-02 10:30:13
【问题描述】:

我想将 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 文件区域并将扩展目录路径更改为完整路径,但没有任何反应。 (从逻辑上讲,如果路径是一个问题,为什么它可以与其他扩展一起使用?)。 它适用于 PHP 7.0.7(所有启用的扩展都完全相同)

更新:仍然无法正常工作,但我尝试将错误消息中的路径粘贴到文件资源管理器中,并且文件已经存在。

【问题讨论】:

  • 检查您的配置是 64 位还是 32 位,它正在尝试加载 32 位版本,可能您的 php 是 64 位版本。你可以在php网站上下载它pecl.php.net
  • @Fky PHP 是 7.1 x86 nts,你可以看到 pdo 也是 x86nts

标签: php sql-server


【解决方案1】:

原来 PHP 7.0 和 PHP 7.1 不兼容,mssql PDO 驱动是针对 7.0 的。

Github issue here

还要确保您包含正确的 64/86 和 ts/nts 版本。

【讨论】:

    【解决方案2】:

    由于托比艾伦接受的答案高于 7.0 和 7.1 是不兼容的,

    不过,Microsoft 已经发布了 7.1 驱动程序的预览版。 这对我有用,希望它可以帮助任何人搜索。

    驱动可以找到here under downloads

    【讨论】:

      【解决方案3】:

      我昨天遇到了这个问题。错误的关键是最后一位。

      找不到指定的过程。

      就我而言,我经历了痛苦的调试。我注意到的第一件事是,当我运行一个 hello world php 文件时,我没有得到这个错误。这向我表明加载文件实际上不是问题,而是调用文件中的函数 的问题。

      我进去反复放入 die() 语句并移动它直到它遇到错误。花了一段时间,但我最终发现我正在使用(显然)现在无效的选项调用 sqlsrv_connect。

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

      【讨论】:

        猜你喜欢
        • 2016-12-25
        • 1970-01-01
        • 2021-08-27
        相关资源
        最近更新 更多