Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 连接错误:SQLSTATE[HY000]:[Microsoft][ODBC驱动程序17 for SQL Server]TDS流中存在协议错误_Php_Sql Server_Iis - Fatal编程技术网

Php 连接错误:SQLSTATE[HY000]:[Microsoft][ODBC驱动程序17 for SQL Server]TDS流中存在协议错误

Php 连接错误:SQLSTATE[HY000]:[Microsoft][ODBC驱动程序17 for SQL Server]TDS流中存在协议错误,php,sql-server,iis,Php,Sql Server,Iis,我有一个名为的错误: 连接错误:SQLSTATE[HY000]:[Microsoft][ODBC驱动程序17 for SQL TDS流中的服务器]协议错误 我现在有这个错误一个星期了,决定在这里寻求帮助 只是为了获得一些我使用的信息: Internet信息服务(IIS)管理器(版本:10.0.18362.1) Microsoft SQL Server管理工作室(MS SSMS)(版本:18.7.1) PHP(版本:7.4.1) 视窗10 我的代码是: // DatabaseConection

我有一个名为的错误:

连接错误:SQLSTATE[HY000]:[Microsoft][ODBC驱动程序17 for SQL TDS流中的服务器]协议错误

我现在有这个错误一个星期了,决定在这里寻求帮助

只是为了获得一些我使用的信息:

  • Internet信息服务(IIS)管理器(版本:10.0.18362.1)
  • Microsoft SQL Server管理工作室(MS SSMS)(版本:18.7.1)
  • PHP(版本:7.4.1)
  • 视窗10
我的代码是:

// DatabaseConection.php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

class Database{
    // variabelen om contact met de database te maken
    private $host = 'localhost,85'; // localhost port 85
    private $dbName = 'Image_Database';
    private $username = ''; // empty for security
    private $password = ''; // empty for security

    // variabel om connectie te leggen
    private $conn;

    public function dbConnectie(){  
        $this->conn = null;
        try{
            $this->conn = new PDO('sqlsrv:Server='.$this->host.';Database='.$this->dbName, $this->username, $this->password);
        } catch (PDOException $exception){
            echo 'Connection error: ' . $exception->getMessage();
        }
        return $this->conn;
    }
}
$database = new Database;
$conn = $database->dbConnectie();

if($conn){
    echo "Connection.";
}elseif(!$conn){
    echo "Failed connection.";
    die(print_r(sqlsrv_errors(), true));
}
sqlsrv_close($conn);
我试图更改主机,但没有成功。
我如何尝试更改它+结果:

private $host = 'localhost:85' -> Connection error: SQLSTATE[08001]: [Microsoft][ODBC Driver 17 for SQL Server]Named Pipes Provider: Could not open a connection to SQL Server [53].
private $host = 'localhost, 85' -> Connection error: SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]Protocol error in TDS stream
private $host = 'localhost', '85' -> HTTP ERROR 500
private $host = 'localhost', 85 -> HTTP ERROR 500
private $host = 'localhost,', 85 -> HTTP ERROR 500
private $host = 'localhost,', '85' -> HTTP ERROR 500
private $host = 'localhost,'. '85' -> Connection error: SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]Protocol error in TDS stream
private $host = 'localhost,85' -> Connection error: SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]Protocol error in TDS stream
private $host = '192.168.178.17,85' -> Connection error: SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]Protocol error in TDS stream
private $host = 'my laptop name (not placing here),85' -> Connection error: SQLSTATE[HY000]: [Microsoft][ODBC Driver 17 for SQL Server]Protocol error in TDS stream
最后,我想放置我的文件结构,看看是否有问题。
C:\inetpub\wwwroot2\classe\databaseconconnection.php


我的问题:为什么会出现此错误以及如何消除它?

什么版本的SQL Server(不是SSMS)?Ie
select@@version
的输出是什么?SQL Server错误日志中是否有与这些错误相对应的内容?@David select的输出@版本为:“Microsoft SQL Server 2019(RTM)-15.0.2000.5(X64)2019年9月24日13:48:23版权所有(C)2019 Windows 10 Home 10.0上的Microsoft Corporation Developer Edition(64位)(Build 18362:)'和SQL Server错误日志中没有错误。Hmmm。应用最新累积上传日期,看看是否有帮助:此处列出了所有版本:@DavidBrowne Microsoft I已更新为最新版本,但没有帮助。(我想a已经有了那个版本,但不确定更新是否也有了。)
localhost,85
可能不是SQL Server,因此TDS错误。您的SQL Server真的在侦听端口85吗?查看SQL错误日志以查看实际端口号。SQL Server(非SSMS)的哪个版本?Ie
select@@version
的输出是什么?SQL Server错误日志中是否有与这些错误相对应的内容?@David select的输出@版本为:“Microsoft SQL Server 2019(RTM)-15.0.2000.5(X64)2019年9月24日13:48:23版权所有(C)2019 Windows 10 Home 10.0上的Microsoft Corporation Developer Edition(64位)(Build 18362:)'和SQL Server错误日志中没有错误。Hmmm。应用最新累积上传日期,看看是否有帮助:此处列出了所有版本:@DavidBrowne Microsoft I已更新为最新版本,但没有帮助。(我想a已经有了那个版本,但不确定更新是否也有了。)
localhost,85
可能不是SQL Server,因此TDS错误。您的SQL Server真的在侦听端口85吗?查看SQL错误日志以查看实际的端口号。