从PHP到SQL Server的连接失败,出现“0”;用户xxx登录失败";

从PHP到SQL Server的连接失败,出现“0”;用户xxx登录失败";,php,sql-server,sqlsrv,Php,Sql Server,Sqlsrv,我试图在本地机器上设置一个演示,演示如何在PHP中使用SQLSRV。为了方便起见,我添加了一个新的登录名和一个使用该登录名的用户,都名为DemoUser,并为我正在使用的示例数据(即Chinook数据库)指定了用户db_datareader、db_datawriter和db_ddladmin角色 我还将计算机上的SQL Server设置为同时使用Windows和SQL Server身份验证,并重新启动了服务器 完成所有这些之后,我可以作为该用户登录SSMS,并且可以使用SQLStringConn

我试图在本地机器上设置一个演示,演示如何在PHP中使用SQLSRV。为了方便起见,我添加了一个新的登录名和一个使用该登录名的用户,都名为DemoUser,并为我正在使用的示例数据(即Chinook数据库)指定了用户db_datareader、db_datawriter和db_ddladmin角色

我还将计算机上的SQL Server设置为同时使用Windows和SQL Server身份验证,并重新启动了服务器

完成所有这些之后,我可以作为该用户登录SSMS,并且可以使用SQLStringConnect()函数成功地从Visual FoxPro(我常用的开发工具)创建连接。但是,当我尝试使用sqlsrv_connect()从PHP连接时,我得到了一个错误

以下是连接代码:

  $hostname = "localhost";
  $username = 'DemoUser';
  $password = 'mYdemoUser';
  $database = 'chinook';
  $connectionInfo = array("Database"=>$database, "UID"=>$username, "PWD"=>$password, "CharacterSet"=>"UTF-8");
  $conn = sqlsrv_connect($hostname, $connectionInfo);

  if( $conn == false ) {
    echo "Connection could not be established.<br />";
    die( print_r( sqlsrv_errors(), true));
  }

你知道我遗漏了什么吗?

检查你的服务器日志,看看登录失败的原因。这可能是权限问题


使用sql design studio以该用户的身份登录,并验证您是否确实可以连接到已知的良好客户端。

可能吗?“若要解决此问题,请将服务器身份验证从Windows身份验证模式更改为SQL Server和Windows身份验证模式。”已执行此操作,并且我可以从另一个应用程序连接。忘了说我已经尝试了服务器日志。由于某些原因,这些故障不会显示在日志中。啊,这给了我一个线索。出于某种原因,我运行了两个版本的SQL Server。停止了错误的一个,我得到了一个不同的错误。我会在假期后探索这个问题。
Connection could not be established.Array
(
    [0] => Array
        (
            [0] => 28000
            [SQLSTATE] => 28000
            [1] => 18456
            [code] => 18456
            [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
            [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
        )

    [1] => Array
        (
            [0] => 28000
            [SQLSTATE] => 28000
            [1] => 18456
            [code] => 18456
            [2] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
            [message] => [Microsoft][ODBC Driver 11 for SQL Server][SQL Server]Login failed for user 'DemoUser'.
        )

)