Windows Server 2008 R2에서 IIS 7.0을 통해 SQL Server에 대한 PHP 쿼리

Windows Server 2008 R2에서 IIS 7.0을 통해 SQL Server에 대한 PHP 쿼리

그래서 저는 Windows Server 2008 R2에서 웹 페이지를 구축하고 있으며 인트라넷에서 작동하도록 IIS 7을 구성하여 Active Directory/로컬 네트워크 내의 모든 컴퓨터에서 로컬로 사이트에 액세스할 수 있습니다. 서버가 연결되었는지 알려주기 위해 기본 쿼리를 수행하는 PHP 스크립트를 실행하려고 할 때. 서버 측과 클라이언트 측(내 워크스테이션에서) 모두에서 페이지를 실행하려고 시도했지만 전혀 작동하지 않습니다.

이것은 연결을 설정하는 데 사용하는 코드의 예이지만 "오류: SQLSTATE[HY000] [2002] 대상 컴퓨터가 적극적으로 거부했기 때문에 연결할 수 없습니다."라는 오류가 계속 발생합니다.

보안을 위해 ServerName, UserName, Password 및 DBName 필드가 제거되었습니다. 또한 모든 코드는 !DOCTYPE, HTML 및 Body 내에 포함되어 있습니다.

<?php
echo "<table style='border: solid 1px black;'>";
  echo "<tr><th>Id</th><th>Firstname</th><th>Lastname</th></tr>";

class TableRows extends RecursiveIteratorIterator { 
     function __construct($it) { 
         parent::__construct($it, self::LEAVES_ONLY); 
     }

     function current() {
         return "<td style='width: 150px; border: 1px solid black;'>" . parent::current(). "</td>";
     }

     function beginChildren() { 
         echo "<tr>"; 
     } 

     function endChildren() { 
         echo "</tr>" . "\n";
     } 
} 

$servername = "[SERVERNAME]";
$username = "[USERNAME]";
$password = "[PASSWORD]";
$dbname = "[DBNAME]";

try {
     $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);
     $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
     $stmt = $conn->prepare("SELECT id, EventID, EventType FROM dbo.Event"); 
     $stmt->execute();

     // set the resulting array to associative
     $result = $stmt->setFetchMode(PDO::FETCH_ASSOC); 

     foreach(new TableRows(new RecursiveArrayIterator($stmt->fetchAll())) as $k=>$v) { 
         echo $v;
     }
}
catch(PDOException $e) {
     echo "Error: " . $e->getMessage();
}
$conn = null;
echo "</table>";
?>  

답변1

고쳤다. ODBC는 최신 버전이 아니며 Windows 2008 R2에는 PHP용 SQL 드라이버가 필요하다는 것이 밝혀졌습니다.

관련 정보