Consulta PHP a SQL Server a través de IIS 7.0 en Windows Server 2008 R2

Consulta PHP a SQL Server a través de IIS 7.0 en Windows Server 2008 R2

Así que estoy creando una página web en mi Windows Server 2008 R2, tengo IIS 7 configurado para funcionar en la intranet para poder acceder al sitio localmente desde cualquier máquina dentro de mi Active Directory/Red local. Cuando intento ejecutar un script PHP que realiza una consulta básica para informarme si el servidor se conecta. Intento ejecutar la página tanto desde el lado del servidor como desde el lado del cliente (desde mi estación de trabajo) y no funciona en absoluto.

Este es un ejemplo del código que estoy usando para establecer una conexión, pero sigo recibiendo el error "Error: SQLSTATE[HY000] [2002] No se pudo establecer ninguna conexión porque la máquina de destino la rechazó activamente".

Tenga en cuenta que los campos de Nombre del servidor, Nombre de usuario, Contraseña y Nombre de base de datos se han eliminado por motivos de seguridad. Además, todo el código está contenido en !DOCTYPE, HTML y 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>";
?>  

Respuesta1

Arreglado. Resulta que ODBC estaba desactualizado y Windows 2008 R2 requería los controladores SQL para PHP.

información relacionada