Windows Server 2008 R2上のIIS 7.0を介したSQL ServerへのPHPクエリ


1

そのため、私は自分のWindows Server 2008 R2上にWebページを構築しています。IIS7をイントラネット上で動作するように設定し、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>";
?>  

MySQLシステムは実際に存在しますか? MySQL DBは設定され実行されていますか? PHPが動作しているマシンから(例えばMySQL Workbench経由で)アクセスできますか?
Ƭᴇcʜιᴇ007

確認したばかりです。MySQL用に実行しているコードですか?私はMySQL Server Side letを持っていません、私はSQL Server Configuration Manager、Management Studio、Profilerを持っていますがMySQLは持っていません。
EveningCommuter

間違ったコードを使っていたらすみません。私はこれにかなり慣れていません、私はマイナーなコーディング経験がありますが、私はこの機能をプロジェクトとして動かすように言われました。
EveningCommuter

回答:


1

それを修正しました。 ODBCは時代遅れで、Windows 2008 R2はSQLドライバfor PHPを必要としました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.