具有mssql连接的PHP失败(Windows身份验证)

时间:2019-03-20 14:09:39

标签: php sql sql-server database sqlsrv

我正在尝试从php连接到mssql数据库。 我已经为此安装了驱动程序。

现在我遇到以下错误:

  

Array([0] => Array([0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft] [用于SQL的ODBC驱动程序13服务器[SQL Server]用户'domain \ user'登录失败。[消息] => [Microsoft] [SQL Server ODBC驱动程序13] [SQL Server]用户'domain \ user'登录失败。)[1] =>数组([0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft] [用于SQL Server的ODBC驱动程序13] [SQL Server]登录失败用户[domain]为用户“域\用户”。[消息] => [Microsoft] [SQL Server ODBC驱动程序13] [SQL Server]用户“域\用户”登录失败。))

有什么我想念的吗?

编辑: 我的连接字符串:

$serverName = "server, port";

$connectionInfo = array( "Database"=>"my_database");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn == false)
 {
 echo "Unable to connect.<br />";
 die( print_r( sqlsrv_errors(), true));
 }

编辑2:

带有用户和密码的代码示例

$serverName = "server, port"; //serverName\instanceName
$connectionInfo = array( "Database"=>"my_database", "UID"=>"domain\user", "PWD"=>"my_pw");
$conn = sqlsrv_connect( $serverName, $connectionInfo);

if( $conn ) {
 echo "Connection OK.<br />";
}else{
 echo "Unable to connect.<br />";
 die( print_r( sqlsrv_errors(), true));
}

2 个答案:

答案 0 :(得分:0)

必须在wampapaches服务中修改身份验证方法。我把我的用户放在那里,通过并正常工作。

答案 1 :(得分:0)

我有一个类似的问题。我有一个php脚本来访问由供应商托管的mssql数据库。我们不能使用Windows身份验证。用户名和密码有效,因为它可与python一起使用。我们发现供应商提供的密码包含一个$,在PHP中表示一个变量。我们将密码周围的双引号更改为单引号,并且可以正常工作。这是由服务器启用了魔引号引起的,解决方法是使用单引号强制PHP将密码识别为字符串。