【问题标题】:Cannot Query MSSQL database with PHP7 + Microsoft Driver无法使用 PHP7 + Microsoft 驱动程序查询 MSSQL 数据库
【发布时间】:2017-02-22 00:16:40
【问题描述】:

我在查询我的 MSSQL 数据库和 PHP7 时遇到问题,我使用新的 Microsoft 驱动程序。 我收到以下错误: sqlsrv_query() 期望参数 1 是资源,在第 33 行的 /var/www/html/sqlFunctions.php 中给出 null

如果我将 2 个函数放在一个函数中,它就可以工作 根据 microsft 示例,它应该可以工作 https://docs.microsoft.com/nl-nl/sql/connect/php/step-3-proof-of-concept-connecting-to-sql-using-php

function OpenConnection()  
{  
    try  
    {  
        $serverName = "devsql1";  
        $connectionOptions = array(
            "Database"=>"test",  
            "Uid"=>"test", 
            "PWD"=>"test"
            );  
        $conn = sqlsrv_connect($serverName, $connectionOptions); 

        if($conn == false)  
            die(FormatErrors(sqlsrv_errors()));  
    }  
    catch(Exception $e)  
    {  
        echo("Error!");  
    }  
}

  function ReadData()  
{  
    try  
    {  


        $conn = OpenConnection();

        $tsql = "SELECT [Corporatienaam] FROM tbl_Corporatie";  
        $getProducts = sqlsrv_query($conn, $tsql);  
        if ($getProducts == FALSE)  
            die(FormatErrors(sqlsrv_errors()));  
        $productCount = 0;  
        while($row = sqlsrv_fetch_array($getProducts, SQLSRV_FETCH_ASSOC))  
        {  
            echo($row['Corporatienaam']);  
            echo("<br/>");  
            $productCount++;  
        }  
        sqlsrv_free_stmt($getProducts);  
        sqlsrv_close($conn);  
    }  
    catch(Exception $e)  
    {  
        echo("Error!");  
    }  
}

【问题讨论】:

  • OpenConnection 不返回任何内容,所以ReadData$connnull

标签: php sql sql-server


【解决方案1】:

您的函数 OpenConnection 没有返回任何值,因此调用时 $conn 将是 null。这应该可以解决它:

function OpenConnection()  
{  
    try  
    {  
        $serverName = "devsql1";  
        $connectionOptions = array(
            "Database"=>"test",  
            "Uid"=>"test", 
            "PWD"=>"test"
            );  
        $conn = sqlsrv_connect($serverName, $connectionOptions); 

        if($conn == false)  
            die(FormatErrors(sqlsrv_errors()));  
        return $conn;
    }  
    catch(Exception $e)  
    {  
        echo("Error!");  
    }  
}

【讨论】:

  • 谢谢,很明显。
  • 发生了,来帮忙。
猜你喜欢
  • 2016-02-07
  • 1970-01-01
  • 2021-08-25
  • 1970-01-01
  • 2017-04-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多