为什么我不能使用PHP连接到我的mssql数据库?

Ben*_*r06 6 php sql-server sql-server-2012

我已经做了很多研究,试图让我在IIS上托管的PHP代码连接到我的MSSQL数据库.我似乎无法弄清楚这个问题.有没有人遇到过这个?

<?php

$serverName = 'AEGIS-PC\SQLEXPRESS';
$connectionInfo=array('Database'=>'tttb_db');

$con = sqlsrv_connect($serverName, $connectionInfo);
if($con){
    echo 'Connection established<br />';
}
else {
    echo 'Connection failed<br />';
    die(print_r(sqlsrv_errors(), TRUE));
}

?>
Run Code Online (Sandbox Code Playgroud)

更新,我们有一个新错误:

连接失败数组([0] =>数组([0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [代码] => 18456 [2] => [Microsoft] [SQL Server的ODBC驱动程序11 ] [SQL Server]用户'NT AUTHORITY\IUSR'登录失败.[message] => [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]用户'NT AUTHORITY\IUSR'登录失败.)[1 ] =>数组([0] => 42000 [SQLSTATE] => 42000 [1] => 4060 [代码] => 4060 [2] => [微软] [用于SQL Server的ODBC驱动程序11] [SQL Server]不能登录请求打开数据库"tttb_db".登录失败.[message] => [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]无法打开登录请求的数据库"tttb_db".登录失败.) [2] =>数组([0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server ]用户'NT AUTHORITY\IUSR'登录失败.[message] => [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]用户'NT AUTHORITY\IUSR'登录失败.)[3] =>数组([0] => 42000 [SQLSTATE ] => 42000 [1] => 4060 [code] => 4060 [2] => [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]无法打开登录请求的数据库"tttb_db".登录失败.[message] => [Microsoft] [SQL Server的ODBC驱动程序11] [SQL Server]无法打开登录请求的数据库"tttb_db".登录失败.))

我们的SQL服务器使用的是Windows身份验证,我们的服务器名称是AEGIS-PC\SQLEXPRESS用户名,密码块是灰色的.我无法想到我们的登录失败的原因.我们做错了什么?

Ren*_*hle 3

有一些事情可能会导致此类问题:

1.) 您的模块未加载,因为它是 VC9,而不是 VC11。检查您的系统使用哪个编译器版本并安装正确的驱动程序。

2.) 检查您的 PHP 版本并使用适合您的 PHP 版本的正确驱动程序,您可以在phpinfo().

3.) 不要忘记安装 MSSQL Native Client,否则你将无法连接到数据库,这就是我每次遇到的问题。

您的代码看起来不错,如果您收到未找到的错误消息,sqlsrv_connect则表明该模块未加载。

https://www.microsoft.com/en-us/download/details.aspx?id=20098