Behoben. Es stellte sich heraus, dass ODBC veraltet war und Windows 2008 R2 die SQL-Treiber für PHP benötigte.
PHP-Abfrage an SQL Server über IIS 7.0 unter Windows Server 2008 R2
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 Antwort auf die Frage
Verwandte Probleme
-
2
Warum kann das IIS-Installationsprogramm staxmem.dll nicht kopieren, obwohl es sich im angegebenen O...
-
1
Muss ich SP1 neu installieren, wenn ich Vista SP1 installiere, bevor ich IIS aktiviere?
-
1
IIS Management Console ist auf meinem XP-Computer verschwunden
-
5
Gibt es einen * guten * HTML-Modus für Emacs?
-
7
Warum sollte ich Windows Server 2008 R2 Enterprise x64 anstelle von Windows 7 Ultimate x64 nicht aus...
-
2
So installieren Sie IIS unter Windows XP. Bekannte lokale Administratorrechte, aber unter "Programme...
-
4
Überprüfen, welche PHP-Version ich unter Linux laufe?
-
5
Leiten Sie den Port 80 eines Linksys WRT54GL an den Port 80 einer einzelnen IP im lokalen Netzwerk w...
-
1
Wie kann ich WebORB in IIS7 integrieren?
-
2
Mac OS X-Bash: Deinstallieren Sie alle Apache- und PHP-Vorfälle