我正在尝试在本地计算机上建立一个演示,演示如何在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));
}
这就是我所看到的:
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'.
)
)
有什么想法我想念的吗?
答案 0 :(得分:-1)
检查服务器日志以查看登录失败的原因。可能是权限问题
使用sql design studio以该用户身份登录,并验证您是否可以真正与已知的良好客户端建立联系。