PHP sqlsrv_connect 返回 false,但没有错误

问题描述 投票:0回答:1

正如标题所示,我正在尝试连接到 SQL 数据库(该数据库已工作多年),但突然停止工作。我正在使用 PHP,并且创建了一个小的测试 PHP 文件,它实际上只是尝试连接。

连接时我得到的只是一个错误的对象,并且 sqlsrv_errors 不包含任何内容。 PHP 代码是:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);
sqlsrv_configure("WarningsReturnAsErrors", 0);

$server = "*redacted*";
$connectionInfo = array( "database"=>"*redacted*", "UID"=>"*redacted*","PWD"=>"*redacted*");

$conn = sqlsrv_connect($server, $connectionInfo);

if( $conn === false ) {
    die( print_r( sqlsrv_errors(),true));
} else {
    print("Worked");
}
?>

我不相信任何人改变了任何东西,但我已经更新了 PHP/SQL 驱动程序版本以尝试让它工作。

我已经通过直接进入等方式检查了 SQL 登录,并且服务器正在默认端口上运行。

我得到的只是一个空白响应(假设因为 sqlsrv_errors 为空)

环境详情: Website/php 在 Windows Server 2019 上的 IIS 上运行 PHP v8.2.10、SQL 驱动程序 v5.11 (php_sqlsrv_82_nts_x64)

SQL 服务器是远程的(但在同一子网/局域网上)我已尝试通过 IP 和名称来确保它不是 dns。

添加一些我尝试过的东西:

  • 在骰子之前打印“无法连接” - 这确实打印出来了,所以已经到了这一步了。
  • 关闭远程和本地服务器上的防火墙。
  • 在 php.ini 和代码中我能想到的所有地方都启用了错误报告
php sql-server iis sqlsrv windows-server-2019
1个回答
0
投票

嗯..这不是我所期望的。

原来我们已经从运行 IIS 的服务器上的计算机管理中的“用户”组中删除了“域用户”。 IIS 使用直通身份验证,所以我猜这就是原因 - 即使实际脚本使用 SQL 身份验证。

重新添加域用户组已修复该问题。

© www.soinside.com 2019 - 2024. All rights reserved.