2017-11-28 12 views
0

PHP의 sqlsrv_query에 문제가 있습니다. 나는 모든 일을 시도하고 그 일을하지 않기 때문에 매번 같은 오류가 발생하고 나는 미쳐 버릴 것이다. 경고는 다음 경고 : \ XAMPP \ htdocs를 \ Status.php 라인 76PHP에서 sqlsrv_query를 사용하여 데이터베이스에서 테이블을 가져 오는 문제

주의 : C에서 문자열 변환 어레이 : \ XAMPP \ sqlsrv_query()은 파라미터 1 자원 널 C에 나와있을 것으로 기대 배열

그리고 난 내 문제

<?php 

$conn = OpenConnectionMsSQL(); 
#var_dump($conn); 
$sql_select = "Select state_desc from sys.databases"; 
$params = array(); 

$query = sqlsrv_query($conn, $sql_select, $params) or die('A error occured:' . sqlsrv_errors()); 

$res = sqlsrv_num_rows($query); 
while($row = sqlsrv_fetch_assoc($res)) 
{ echo ($row['state_desc']); } 

?> 

를이 코드를 사용하고이 내 접속 코드 : htdocs를 \ Status.php 라인 (76) 에 오류가 발생했습니다

<?php 
    function OpenConnectionMsSQL() 
    { 
     try{ 
      $serverName = "***"; 
      $database = "***"; 
      $uid = "***"; 
      $pwd = "***"; 

      $connectionOptions = array("Database"=>"$database","Uid"=>"$uid","PWD"=>"$pwd"); 
      $conn = sqlsrv_connect($serverName, $connectionOptions); 
      if($conn == false) 
       die(print_r(sqlsrv_errors(), true)); 
      } 

     catch(Exception $e) 
      { 
       exit("<h1>"."Verbindung fehlgeschlagen!". "</br>". "Server Stopped"."</h1>");#.$e->getMessage()); 
       exit("<!--"."<h1>"."Serverstatus: Verbindung fehlgeschlagen!". "</br>". "Server Stopped"."</h1>"."-->");#.$e->getMessage(); 

      } 
    } 

?> 

빠른 답변을 받기를 바랍니다. 감사합니다. : D

+0

가) PDO는 저수준 SQL Server 드라이버 기능으로 스매싱하는 것보다 훨씬 낫습니다. B) 아마 오류가 발생하지만 인식하지 못합니다. PDO는 예외를 발생시킬 수 있습니다. 즉, 각 호출의 성공 또는 실패를 명시 적으로 테스트 할 필요가 없습니다. – tadman

+0

나는 또한 PDO와 함께 시도했지만 그 결과는 같음 – Ardor

+0

"배열로 문자열 변환 ..."오류가'sqlsrv_errors()'에서 발생했습니다. 이 함수는 배열을 반환하며,'print_r' 또는'var_dump'를 사용해야합니다. 이 문제를 해결하면 쿼리가 실패한 이유에 대한 의미있는 이유를 알 수 있습니다. – ImClarky

답변

0

나는 문제를 해결했으며, 나는 결과를 가져올 수 없으므로 sql_fetch_array를 사용하는 것을 잊어 버렸다.

내가 사용했던 코드가 전부 다. 희망을 갖고 조금 도와 줄 수 있습니다.

$sql_select = "Select state_desc,name from sys.databases where name='master'"; 
$sql_version = "Select @@version as Version"; 
$stmt = sqlsrv_query($conn, $sql_select) or die('A error occured: ' . print_r(sqlsrv_errors(), true)); 
$version = sqlsrv_query($conn, $sql_version) or die('A error occured: ' . print_r(sqlsrv_errors(), true)); 

if (sqlsrv_has_rows($version)) { 
    $data2 = sqlsrv_fetch_array($version, SQLSRV_FETCH_ASSOC); 

    echo "Serverinfo: ".$data2['Version']."<br/>"."<br/>"; 
} else { 
    echo "No data found"; 
}