Починил это. Оказывается, ODBC устарел, а для Windows 2008 R2 требовались драйверы SQL для PHP.
PHP-запрос к SQL Server через IIS 7.0 в Windows Server 2008 R2
Поэтому я создаю веб-страницу на моем 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 ответ на вопрос
Похожие вопросы
-
2
Почему установщик IIS не может скопировать staxmem.dll, несмотря на то, что он находится в указанной...
-
1
Если я установлю Vista SP1 до включения IIS, придется ли мне переустанавливать SP1?
-
1
Консоль управления IIS исчезла на моей машине XP
-
-
5
Есть ли * хороший * HTML-режим для emacs?
-
7
Почему я не хочу запускать Windows Server 2008 R2 Enterprise x64 вместо Windows 7 Ultimate x64?
-
2
Как установить IIS на Widows XP. Получил права локального администратора, но не имею вкладки «устано...
-
4
Проверка версии PHP, на которой я работаю в Linux?
-
5
Перенаправить порт 80 на Linksys WRT54GL на порт 80 одного IP в локальной сети
-
1
Как я могу интегрировать WebORB с IIS7?
-
2
Mac OS X bash: удалите все apache и PHP вхождения