DB のテーブルを説明する単純な PHP ページを作成しようとしています。これにより、探しているテーブル/列名またはデータ型をいつでも見つけることができます (必要に応じて、貧乏人のスキーマのようなものです)。
過去にSybase DBでこれを行ったことがありますが、新しいDBはSQL Serverになるため、そのDBを使用して再現しようとしています。
try {
$conn = new PDO("odbc:Driver={SQL Native Client};Server=servername,1433;Database=dbname;Uid=user;Pwd=password;");
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );
} catch(PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
try {
$query = $conn->query("execute sp_help tablename");
} catch(PDOException $e) {
echo "Error: ".$e->getMessage();
}
while($result = $query->fetch(PDO::FETCH_ASSOC)) {
print_r($result);
}
しかし、最初の結果しか得られないかのようです(ループしません)。私はここで与えられた例のようなものを期待していましたSQL Server FAQしかし、私が得たのは最初の行 (名前、所有者、タイプ、date_created) だけで、結果セットは列名などを与えません (これは私が本当に後)。
何か案は?
更新: TechNetによると、指定された引数がユーザー テーブルの場合、列を返す必要がありますが、この場合は返されません。私が得るのは...
Array ( [Name] => TableName [Owner] => dbo [Type] => user table [Created_datetime] => 2013-07-15 23:26:43.377 )