首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >返回MYSQL表中所有列字段的名称

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

Stack Overflow用户
提问于 2012-09-03 11:39:05
回答 3查看 4K关注 0票数 0

我想获取数据库中特定表的所有列名。我搜索了一下,发现了这样的查询:

代码语言:javascript
复制
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'

因此,我编写了这个PHP来处理它:

代码语言:javascript
复制
    <?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的列表作为结果。

有人知道怎么做吗?

我也试过:

代码语言:javascript
复制
<?php
    $query  = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns where TABLE_NAME = 'auto'";
    $result = mysql_query($query);
    $i = 0;
    print_r($result);
  ?>

Resource id #5回答说。所以它必须是SQL查询。

这完全毁了这一页。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-09-03 11:40:16

您正在尝试获取一个相关的数组,而不是一个数字数组。

代码语言:javascript
复制
while($row = mysql_fetch_array($result))

默认情况下,关联数组是列名数组。

您还可以从表中获取列的详细信息,而不需要访问信息模式(在MySQL5.1到5.4ish中性能很差),方法是使用show columns from yourTableName;

代码语言:javascript
复制
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)
票数 2
EN

Stack Overflow用户

发布于 2012-09-03 11:46:37

我是遗漏了什么,还是忘记了显示列函数?

票数 1
EN

Stack Overflow用户

发布于 2012-09-03 11:43:38

代码语言:javascript
复制
<?php
 /* The users table consists of three fields:
 *   user_id
 *   username
 *   password.
 */
  $link = mysql_connect('localhost', 'mysql_user', 'mysql_password');
   if (!$link) {
      die('Could not connect to MySQL server: ' . mysql_error());
   }
   $dbname = 'mydb';
   $db_selected = mysql_select_db($dbname, $link);
   if (!$db_selected) {
     die("Could not set $dbname: " . mysql_error());
   }
   $res = mysql_query('select * from users', $link);

    echo mysql_field_name($res, 0) . "\n";
    echo mysql_field_name($res, 2);
  ?>

上面的示例将输出:

user_id密码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12247103

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档