【问题标题】:PHP: How do I establish a connection to my SQL Server?PHP:如何建立与我的 SQL Server 的连接?
【发布时间】:2012-12-02 03:10:19
【问题描述】:

我通常将我的 SQL Server 与 SQL Server Management Studio 一起使用。在那里登录时,我使用 Windows 身份验证并且不指定用户名/密码。因此,我目前使用的用户名/密码与登录计算机时使用的用户名/密码相同。我正在尝试通过 PHP 建立与服务器的连接;但是,我得到一个错误。有谁知道我做错了什么?

代码

    $serverName = "MYPCNAME"; 

    $connectionInfo = array( "Database"=>"College", "UID"=>"MYUSERNAME", "PWD"=>"MYPASSWORD");

    $conn = sqlsrv_connect( $serverName, $connectionInfo);

    if( $conn ) {
         echo "Connection established.<br />";
    }else{
         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][SQL Server Native Client 11.0][SQL Server]Login failed for user 'MYUSERNAME'. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'MYUSERNAME'. ) [1] => Array ( [0] => 28000 [SQLSTATE] => 28000 [1] => 18456 [code] => 18456 [2] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'MYUSERNAME'. [message] => [Microsoft][SQL Server Native Client 11.0][SQL Server]Login failed for user 'MYUSERNAME'. ) )

【问题讨论】:

    标签: php sql-server windows-authentication


    【解决方案1】:

    我认为问题出在您的 SQL Server 配置中。您应该有一个具有 SQL Server 身份验证而不是 Windows 身份验证的用户。这是https://support.gearhost.com/KB/a453/adding-users-to-mssql-using-sql-server-management-studio.aspx

    您可能还想检查您的 SQL Server TCP/IP 配置是否可以远程访问:http://blogs.msdn.com/b/walzenbach/archive/2010/04/14/how-to-enable-remote-connections-in-sql-server-2008.aspx

    【讨论】:

    • 我阅读了您的链接并最终引导我查看 SQL Server 错误日志,其中显示我使用了不正确的用户 ID 和密码不匹配。在 SQL Server 中设置后,我应该在我的用户 ID 上使用任何前缀吗?
    • @daveomcd SQL Server 身份验证不需要前缀。尝试在$serverName 中添加sql server 实例名称,例如MYPCNAME\sqlexpress(如果您使用sql express)?参考sqlsrv_connect文档php.net/manual/en/function.sqlsrv-connect.php
    • 我不知道我有一个 sql server 实例...我只知道我可以在 SQL Server Management Studio 中使用“MYPCNAME”或“localhost”连接到它
    • 好的。您可以使用新创建的 SQL Server 身份验证帐户登录到 SQL Server 管理吗?
    • 不,但它在列表中并且看起来配置正确。
    【解决方案2】:

    您应该考虑切换到 SQL Server 身份验证,这样您就可以使用一系列帐户。

    您使用的登录名似乎不正确;我过去使用过 SQL Server,在注册过程中应该(如果我错了,请纠正我)被要求输入“sa”的密码

    SQLSTATE = 28000 - Review This

    然后看看这是否为您提供了解决方案?

    此外,如果您使用的是 Windows 身份验证,请查看以下链接:Connect to MSSQL Server Using Windows Authentication

    【讨论】:

      【解决方案3】:

      我认为您将无法使用 Windows 身份验证从 PHP 连接到 SQL,您可能还需要启用 SQL 身份验证并连接 SA 或其他 SQL 级别的帐户。

      【讨论】:

        猜你喜欢
        • 2023-03-28
        • 1970-01-01
        • 2012-06-02
        • 2013-04-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-08
        相关资源
        最近更新 更多