【问题标题】:Call to undefined function sqlsrv_connect() using WAMP and php 7.1.6使用 WAMP 和 php 7.1.6 调用未定义函数 sqlsrv_connect()
【发布时间】:2017-12-05 03:48:10
【问题描述】:

首先,我阅读并尝试了我在网上找到的东西,甚至是从这个网站上找到的,但无法让它发挥作用。

我有一个在 Windows Server 2012 上运行的 SQL SERVER 2014,我有一个运行 ApacheWAMP 64 位 strong> 在 PHP 7.1.6 上并需要连接到数据库,显然扩展没有加载,因为我收到 undefined function error

$conn = sqlsrv_connect($APIDBSERVER, $connection);

到目前为止我做了什么:

  • 已安装 Microsoft® ODBC Driver 11 for SQL Server
  • 已下载 PHP SQL Driver 4.0 并将 php_sqlsrv_7_nts_x64.dll 移至 /ext
  • 将它们添加到 php.ini: extension=php_pdo_sqlsrv_7_nts_x64.dll extension=php_sqlsrv_7_nts_x64.dll

显然 PDO 还需要 WAMP 没有的 php_pdo.dll,我还没有找到从哪里下载它,所以 我正在使用标准的非 PDO 方法

  • 最近甚至尝试启用被禁用的 odbc 扩展:

extension=php_odbc.dll

extension=php_pdo_odbc.dll

我通过 WAMP 菜单访问 php.ini,所以我知道我正在编辑正确的,重新启动服务器几次尝试不同的东西,但我已经没有想法了。

你能帮帮我吗?

编辑: PHP 错误日志表明找不到模块,但如果我检查它们所在的路径,请将文件名复制并粘贴到 php.ini 中。

PHP 警告:PHP 启动:无法加载动态库 'c:/wamp64/bin/php/php7.1.6/ext/php_pdo_sqlsrv_7_nts_x64.dll' - 的 找不到指定的模块。在第 0 行的未知中

PHP 警告:PHP 启动:无法加载动态库 'c:/wamp64/bin/php/php7.1.6/ext/php_sqlsrv_7_nts_x64.dll' - 的 找不到指定的模块。在第 0 行的未知中

编辑 2: 尝试降级到 7.0.20 并得到相同的错误,所以 php.ini 很好,只是由于某种原因它不会加载它们,也许会尝试下载 ODBC 13.1?

【问题讨论】:

标签: sql-server wamp php-7.1


【解决方案1】:

由于 WAMPServer 的配置方式,NTS 扩展无法运行。

所以稍微改变一下你的进程,改用线程安全的 dll。

【讨论】:

  • 试试看,谢谢。编辑:我认为它有效,没有得到未定义的函数错误,所以猜测是的,仍然需要检查它是否连接,但先生,我欠你一杯咖啡!
【解决方案2】:

每个 PHP 版本可能需要不同版本的 Microsoft PHP Drivers for SQL Server。

下面的链接显示了 PHP 和 MS SQLSRV 版本之间的兼容性: https://docs.microsoft.com/en-us/sql/connect/php/download-drivers-php-sql-server?view=sql-server-ver15.

【讨论】:

    猜你喜欢
    • 2016-04-09
    • 2016-08-26
    • 1970-01-01
    • 2012-11-22
    • 2016-09-08
    • 1970-01-01
    • 2019-02-13
    • 2016-07-02
    • 2016-05-30
    相关资源
    最近更新 更多