-1

我有这段代码,我使用它来显示数据库表的所有名称。

它曾经可以工作......但突然它不会出现任何东西......你能看看吗?我正在使用 SQL。

$section = "SELECT * FROM forma";
$res = odbc_exec($connection, $section) or die(odbc_error());   
    $firstrow = false;
while ($row = odbc_fetch_array($res)){
    if (!$firstrow) {
        foreach ($row as $column => $value) {
            echo "<label> " . $column . "</label>";
        echo "<input type='checkbox' name='data[]' value='" . $column . "' /><br/><br/>"; 
        }
$firstrow = true;
    }
}

谢谢

4

1 回答 1

0

这是检索表的列名的一种相当讨厌的方式。它所做的是读取表中的所有数据,忽略结果集并仅将其用于列名。然而,发生的事情是桌子是空的,所以根本没有返回任何东西。

您需要修改查询以查看元数据而不是表本身。您将需要对其进行返工。此 SQL 将为您检索该表的列名...

Select Columns.Name
  From Sys.Columns
 Where Object_Name(Columns.Object_id) = 'forma'
 Order By Columns.Column_Id;

之后,您将需要重新调整您的代码以利用它。

于 2013-01-07T14:40:57.473 回答