2017-02-21 11 views
0

MSSQLデータベースとPHP7を照会する際に問題があります。新しいMicrosoftドライバを使用しています。 私は、次のエラーを得た: sqlsrv_queryは()私はそれが動作1つの関数に一緒に2つの機能を入れた場合はnullライン33PHP7 + MicrosoftドライバでMSSQLデータベースを照会できません

に/var/www/html/sqlFunctions.phpで与えられ、パラメータ1は資源であることを期待呼び出されたとき microsft例によると、それはあなたの関数OpenConnectionメソッドは、任意の値を返すされていない 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!"); 
    } 
} 
+0

'OpenConnection'は何も返さないので、' ReadData'の '$ conn'は' null'です。 –

答えて

1

動作するはずですので、$connnullになります。これは修正する必要があります:

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!"); 
    } 
} 
+0

ありがとう、とても明らかです。 –

+0

これは、ここに役立ちます。 –

関連する問題