【问题标题】:PHP not recognizing sqlsrvPHP 无法识别 sqlsrv
【发布时间】:2019-07-23 19:55:57
【问题描述】:

到目前为止,我已按照本教程中概述的步骤进行操作:https://www.microsoft.com/en-us/sql-server/developer-get-started/php/windows 但是,列出的 php 版本不可用,所以我使用 PHP 7.3,并且一直使用 5.6 PHP for SQL Server 驱动程序用它。问题是当我运行示例 connect.php 时,它返回 Fatal error: Call to undefined function sqlsrv_connect() in C:\inetpub\wwwroot\db.php on line 12 我知道这是因为 PHP 不将 sqlsrv 识别为模块。

当我运行 php -d display_startup_errors=1 -d error_reporting=-1 -d display_errors -c "C:\Path\To\php.ini" -m 时,它没有按预期显示 sqlsrv,但我不确定是什么导致了这个问题。

我将 php.ini-production 文件的 ext 文件夹中的 php_sqlsrv_73_ts_x64.dllphp_pdo_sqlsrv_73_ts_x64.dll 都称为 ;extension=php_sqlsrv_73_nts_x64.dll ;extension=php_pdo_sqlsrv_73_nts_x64.dll

这不起作用,所以我也尝试使用线程版本而不是非线程版本,但它仍然无法将 sqlsrv 识别为模块。我不知道这是否与我在 php.ini-production 文件中放置扩展语句的方式有关,但这里是它的放置方式。 https://i.imgur.com/8My60tv.png

非常感谢任何帮助。

【问题讨论】:

  • 您是否取消了包含的注释?从字符串的前面删除;;extension=php_sqlsrv_73_nts_x64.dll

标签: php sql-server windows sqlsrv


【解决方案1】:

我使用了以下方法,以便使用 fastCGI 正确配置带有 PHP 的 IIS。 (希望你已经用 IIS 服务器配置了 PHP)。

  1. 纠正错误的最简单方法是使用 XAAMP 附带的 PHP 配置。 XAAMP安装后,将php文件夹复制到你喜欢的位置(C:\xampp\php)
  2. 然后下载并安装 PHP Manager for IIS - https://www.iis.net/downloads/community/2018/05/php-manager-150-for-iis-10
  3. 如果打开,关闭 IIS 管理器并重新打开,PHP 管理器可用。 PHP Manager 将帮助您使用 IIS 轻松配置 PHP 并轻松安装外部驱动程序。
  4. 只需浏览 PHP 管理器选项,您就会得到一个好主意。要重新配置 PHP 版本,请单击注册新版本,然后在第一步中提到的 php 文件夹中选择 php-cgi.exe。此外,无需复制和粘贴,您也可以使用 PHP Manager 轻松安装驱动程序。
  5. 最后安装 Microsoft SQL ODBC 驱动程序以及https://docs.microsoft.com/en-us/sql/connect/odbc/download-odbc-driver-for-sql-server?view=sql-server-ver15

【讨论】:

    【解决方案2】:

    在您的 php.ini 文件中以 ; 开头的行被注释掉,因此 php 不会读取。取消注释其中一行或两行以使用扩展。

    【讨论】:

      猜你喜欢
      • 2015-05-14
      • 1970-01-01
      • 1970-01-01
      • 2021-06-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-01
      相关资源
      最近更新 更多