php - 返回MYSQL表中所有列字段的名称

标签 php mysql sql

我想获取数据库中特定表的所有列名。我四处搜索并发现了这个查询:

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/

相关文章:

java - 将 MySQL 中的 CHAR(0) 映射到 Hibernate 中的 boolean 值

mysql - 查询 "the number of row"

sql - 有没有更好的方法来过滤每个组中存在的数据?

sql - 使用 SSIS 将递归层次结构展平为维度

php - Laravel 中如何将消息传递到另一个页面?

php - 无法在 ListView 中显示数据库 mysql 中的图像

javascript - 如何在浏览器上点击后退按钮和页面刷新后重新更新查询

php - 每个表行都需要一个 ID 吗?

java - Liferay Service Builder - 创建引用

php - 在 Drupal 上连接数据库表