PHP sqlsrv_connect 到 SQL Server:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误

Posted

技术标签:

【中文标题】PHP sqlsrv_connect 到 SQL Server:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误【英文标题】:PHP sqlsrv_connect to SQL Server: A network-related or instance-specific error has occurred while establishing a connection to SQL Server 【发布时间】:2018-03-28 11:38:41 【问题描述】:

我想将 php 7.1 连接到 SQL Server。我从以下位置添加兼容的驱动程序:

https://docs.microsoft.com/en-us/sql/connect/php/microsoft-php-driver-for-sql-server

    try 
        $serverName = "tcp:localhost,1433";
        $connectionOptions = array("Database" => "fc","Uid" => "sa", "PWD" => 
"Aa123456");
        $conn = sqlsrv_connect($serverName, $connectionOptions);
        if ($conn == false)
            die (print_r(sqlsrv_errors ()));
     catch (Exception $e) 
        echo("Error!");
    

到我的 php.ini,我在 phpinfo() 中检查了它 现在我在 Windows 10 上安装了 ODBC 13.1 并正确安装了 SQL Server 2016,并且可以通过 sql server management studio 以“sa”用户身份登录。 但是当我尝试这段代码时:

我收到此错误: [Microsoft][ODBC Driver 13 for SQL Server]与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。检查实例名称是否正确以及 SQL Server 是否配置为允许远程连接。有关详细信息,请参阅 SQL Server 联机丛书。

请帮忙寻找答案... 谢谢!

【问题讨论】:

【参考方案1】:

当 MS SQL Server 实例设置不正确时,我收到此错误。

可能的解决方案:

您应该检查您的服务器网络配置。转到 SQL Server 配置管理器(或计算机管理\服务和应用程序\SQL Server 配置管理器),然后转到 SQL Server 网络配置,“InstanceName”的协议。首先,必须启用 TCP/IP。然后打开 TCP\IP 的属性。在“IP 地址”选项卡上,转到 IPAll。要使此脚本正常工作,“TCP 动态端口”必须为空,并且“TCP 端口”必须等于 1433(或其他端口)。

注意:

如果“SQL Server Browser 服务”正在运行,则无需端口号即可连接。

【讨论】:

以上是关于PHP sqlsrv_connect 到 SQL Server:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误的主要内容,如果未能解决你的问题,请参考以下文章

sqlsrv_connect:未找到数据源名称且未指定默认驱动程序

php:致命错误:调用未定义函数 sqlsrv_connect()

PHP sqlsrv_connect 错误

未捕获的错误:调用未定义的函数 sqlsrv_connect()

在第 7 行调用 C:\wamp\www\Webs\client.php 中未定义的函数 sqlsrv_connect()

致命错误:使用 wamp php 5.5.12 调用未定义函数 sqlsrv_connect()