我想获取数据库中特定表的所有列名。我四处搜索并发现了这个查询:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'
所以我写了这个PHP来处理它:
<?php
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'";
$result = mysql_query($query);
$i = 0;
while($row = mysql_fetch_array($result, MYSQL_ASSOC)) {
echo "<p>".$row[$i]."</p>";
$i++;
}
?>
它什么也没返回。我尝试通过删除 $i
变量来不使用数组索引,但它只返回 Array
列表作为结果。
有人知道怎么做吗?
我也试过:
<?php
$query = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'";
$result = mysql_query($query);
$i = 0;
print_r($result);
?>
返回了资源 id #5
。所以它一定是 SQL 查询。
这完全杀死了页面。
最佳答案
您正在尝试获取关联的数组 - 而不是数字数组。
while($row = mysql_fetch_array($result))
关联数组默认是列名称数组。
您还可以在不访问信息模式的情况下从表中获取列详细信息 - 这在 mysql - 5.1 到 5.4ish 中性能很差 - 通过使用 show columns from yourTableName;
mysql> show columns from first;
+-------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------+----------+------+-----+---------+-------+
| id | int(3) | YES | | NULL | |
| title | tinytext | YES | | NULL | |
+-------+----------+------+-----+---------+-------+
2 rows in set (0.00 sec)
关于php - 返回MYSQL表中所有列字段的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12247103/