PHP-запрос к SQL Server через IIS 7.0 в Windows Server 2008 R2

319
EveningCommuter

Поэтому я создаю веб-страницу на моем 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
Система MySQL действительно существует? БД MySQL настроена и работает? Можете ли вы получить к нему доступ (через, скажем, MySQL Workbench) с компьютера, на котором работает PHP? Ƭᴇcʜιᴇ007 7 лет назад 0
Я только что проверил, это код, который я запускаю для MySQL? У меня нет MySQL Server Side Let, у меня есть диспетчер конфигурации SQL Server, Management Studio, Profiler, но нет MySQL. EveningCommuter 7 лет назад 0
Извините, если я использовал неправильный код. Я довольно новичок в этом, у меня небольшой опыт программирования, но мне сказали, чтобы эта функция работала как проект. EveningCommuter 7 лет назад 0

1 ответ на вопрос

1
EveningCommuter

Починил это. Оказывается, ODBC устарел, а для Windows 2008 R2 требовались драйверы SQL для PHP.

Похожие вопросы