PHP无法连接到SQL Server 2016

PHP无法连接到SQL Server 2016,php,sql-server,apache,Php,Sql Server,Apache,我在这里搜索了所有关于这个问题的线索,没有一个答案对我有用 我已经安装了(Windows 10 64位)、Apache2.4(64位)、PHP 7.4.2(64位)和SQL Server 2016(64位)。 我已经更新了php.ini以包括 extension=php_sqlsrv.dll 它来自于php_sqlsrv-5.7.1preview-7.4-ts-vc15-x64包,当我运行php-m列出所有模块时,sqlsrv被列出 但是,当我尝试从PHP文件连接到SQL server时,它失

我在这里搜索了所有关于这个问题的线索,没有一个答案对我有用

我已经安装了(Windows 10 64位)、Apache2.4(64位)、PHP 7.4.2(64位)和SQL Server 2016(64位)。 我已经更新了php.ini以包括

extension=php_sqlsrv.dll
它来自于php_sqlsrv-5.7.1preview-7.4-ts-vc15-x64包,当我运行php-m列出所有模块时,sqlsrv被列出

但是,当我尝试从PHP文件连接到SQL server时,它失败并显示一条错误消息

<?php  
 $serverName = "MYPC\\SQLINSTANCE"; 
 $uid = "sa";   
 $pwd = "thePassword";  
 $databaseName = "TesterDB"; 

 $connectionInfo = array( "UID"=>$uid,                            
                     "PWD"=>$pwd,                            
                     "Database"=>$databaseName); 

 /* Connect using SQL Server Authentication. */  
 $conn = sqlsrv_connect( $serverName, $connectionInfo);  
 if( $conn )
 {
     echo "Connected";
 }
 else
 {
  echo "Error";
  die( print_r( sqlsrv_errors(), true));
 }
?>

错误消息:

用户“sa”登录失败。)[1] =>数组([0]=>42000[SQLSTATE] =>42000[1]=>4060[code]=>4060[2]=>[Microsoft][ODBC驱动程序13 for SQL Server][SQL Server]无法打开请求的数据库“TesterDB” 通过登录。登录失败

登录名和密码正确,PC和实例名正确。 还有什么可能导致连接失败?某些格式问题?某些不兼容?

检查列表:

  • 在MSSQL上启用“通过SQL帐户登录”和“Windows身份验证”(属性/安全)
  • 在属性菜单中启用“SA帐户登录”
  • 在防火墙上启用sql连接端口(1433默认端口)或仅为测试禁用防火墙
  • 如果从其他网络进行连接,则启用到MSSQL的远程连接
  • 通过探查器工具排除连接进度故障

  • 为什么您要首先尝试使用
    sa
    帐户连接到SQL Server?应用程序不应该使用
    sa
    帐户。我建议首先创建一个只具有应用程序所需权限的登录名。然后,如果失败,请查阅SQL Server的日志,它将告诉您exac不要解释身份验证失败的原因(如果您不理解错误,请在问题中说明)。“sa帐户始终用于访问我们使用的软件中的此实例和数据库。”好吧,这需要改变;这是一个糟糕的想法,因为有这么多原因。如果你的网站,在这种情况下,曾经受到威胁的人有权做任何他们想做的事。你真的需要尽快修复你的安全模型。“坦率地说,我对此不感兴趣”所以,如果有人恶意使用你的应用程序做任何他们想做的事情,这不是你的问题,因为你不想麻烦得到一个权限有限的服务帐户?我的意思是没有办公室,但这样的态度就是为什么安全漏洞会导致如此多的数据被泄露;因为应该关心的人不会。听起来你没有database
    TesterDB
    在您的实例上,但我仍然建议您修复这些凭据。这里表达的对数据安全的态度非常糟糕。如果您受到GDPR的影响(我怀疑您没有)这种糟糕的做法将被视为一个很大的促成因素,作为应用程序开发人员,您也有责任确保您拥有正确的工具;
    sa
    帐户是完全错误的工具。如果您无法控制这一点,作为维护连接到数据库的应用程序的人,您需要与有能力更改登录详细信息的人联系,并请求更改。如果你对此不感兴趣,那么我很抱歉说,但坦率地说,这只是疏忽,我不会在我的团队中雇用对他们所涉及的应用程序有这种感觉的人。