我正在尝试创建一个简单的 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 )