0

有一个名为“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
}
?>
4

1 回答 1

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 包含哪些不同的字符串。您从运行的查询中得到的只是一个字符串,即每列的名称。

于 2013-08-09T00:59:54.477 回答