如何从mysql获取列名?

时间:2013-08-09 00:49:10

标签: php mysql

有一个名为'myTable'的表,其中包含列 - MyFactor1,MyFactor2和MyFactor3。我想获取这些列名,但现在它只返回'MyFactor1'。我尝试了 mysql_fetch_array / assoc / object ,但它们不起作用。你有任何想法可以解决这个问题吗?提前致谢。这是我的代码:

<?php
$aaa = mysql_query("select column_name from `information_schema`.`columns` 
               where `table_schema` = 'myDB' and `table_name` in ('myTable')");
foreach ($bbb = mysql_fetch_row($aaa) as $taxokey => $taxovalue) {
?>
    <option value="<?php print($taxokey);?>"><?php print($taxovalue);?></option>
<?php
}
?>

1 个答案:

答案 0 :(得分:2)

mysql_fetch_row()为结果集中的每一行返回一个数组。 foreach的初始状态调用mysql_fetch_row()一次 - 它不会为每一行调用mysql_fetch_row()。

所以你的foreach不是循环遍历行,它循环遍历返回一行的数组元素。

这是一个按照你想要的方式运行的循环:

while ($bbb = mysql_fetch_assoc($aaa)) {
        $taxokey = $bbb["column_name"];
        $taxovalue = $bbb["column_name"];
?>
    <option value="<?php print($taxokey);?>"><?php print($taxovalue);?></option>
<?php
}

我不确定你想要的$ taxokey和$ taxovalue包含哪些不同的字符串。从您运行的查询中获得的只是一个字符串,即每列的名称。