1

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

1 回答 1

0

我能想到的唯一方法是在 sybase 端创建可以调用 sp_help 并返回所需数据的过程。可以根据需要使用该程序。

于 2013-11-19T13:32:01.557 回答