PHP-Abfrage an SQL Server über IIS 7.0 unter Windows Server 2008 R2

431
EveningCommuter

Ich erstelle also eine Webseite unter Windows Server 2008 R2. Ich habe IIS 7 so konfiguriert, dass es im Intranet funktioniert, sodass ich lokal von jedem Computer in meinem Active Directory / lokalen Netzwerk auf die Site zugreifen kann. Wenn ich versuche, ein PHP-Skript auszuführen, wird eine grundlegende Abfrage ausgeführt, um mich zu informieren, ob der Server eine Verbindung herstellt. Ich versuche, die Seite sowohl auf der Serverseite als auch auf der Clientseite (von meiner Workstation aus) auszuführen und funktioniert überhaupt nicht.

Dies ist ein Beispiel für den Code, den ich zum Herstellen einer Verbindung verwende. Ich erhalte jedoch die Fehlermeldung "Fehler: SQLSTATE [HY000] [2002] Es konnte keine Verbindung hergestellt werden, da der Zielcomputer sie aktiv ablehnte."

Beachten Sie, dass die Felder ServerName, UserName, Password und DBName aus Sicherheitsgründen entfernt wurden. Der gesamte Code ist auch in! DOCTYPE, HTML und Body enthalten.

<?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
Existiert das MySQL-System tatsächlich? Ist die MySQL DB konfiguriert und läuft? Können Sie (z. B. MySQL Workbench) von der Maschine aus darauf zugreifen, auf der PHP läuft? Ƭᴇcʜιᴇ007 vor 7 Jahren 0
Ich habe das gerade überprüft, ist der Code, den ich für MySQL verwende? Ich habe keine MySQL Server-Seite, ich habe SQL Server Configuration Manager, Management Studio, Profiler aber kein MySQL. EveningCommuter vor 7 Jahren 0
Entschuldigen Sie bitte, wenn ich den falschen Code verwendet habe. Ich bin relativ neu in diesem Bereich, ich habe kleinere Codierkenntnisse, aber mir wurde gesagt, dass diese Funktion als Projekt ausgeführt werden soll. EveningCommuter vor 7 Jahren 0

1 Antwort auf die Frage

1
EveningCommuter

Behoben. Es stellte sich heraus, dass ODBC veraltet war und Windows 2008 R2 die SQL-Treiber für PHP benötigte.