我想让所有的mysql表的col名称在php数组?

对此有疑问吗?


当前回答

我以前做过这种事。

SELECT column_name
FROM information_schema.columns
WHERE table_name='insert table name here'; 

其他回答

最好的方法是使用INFORMATION_SCHEMA元数据虚拟数据库。特别是INFORMATION_SCHEMA。列的表…

SELECT `COLUMN_NAME` 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' 
    AND `TABLE_NAME`='yourtablename';

它非常强大,可以给你大量的信息,而不需要解析文本(比如列类型,列是否为空,最大列大小,字符集,等等)…

哦,它是标准SQL(而SHOW…是一个MySQL特定的扩展)…

有关SHOW…使用INFORMATION_SCHEMA表,查看MySQL文档中关于INFORMATION_SCHEMA的一般内容…

似乎有两种方法:

DESCRIBE `tablename`

or

SHOW COLUMNS FROM `tablename`

更多描述请点击:http://dev.mysql.com/doc/refman/5.0/en/describe.html

这将生成一个带逗号分隔符的列名字符串:

    SELECT CONCAT('(',GROUP_CONCAT(`COLUMN_NAME`),')') 
    FROM `INFORMATION_SCHEMA`.`COLUMNS` 
    WHERE `TABLE_SCHEMA`='database_name' 
    AND `TABLE_NAME`='table_name';
function get_col_names(){  
    $sql = "SHOW COLUMNS FROM tableName";  
    $result = mysql_query($sql);     
    while($record = mysql_fetch_array($result)){  
     $fields[] = $record['0'];  
    }
    foreach ($fields as $value){  
      echo 'column name is : '.$value.'-';  
}  
 }  

return get_col_names();

编辑:今天我学到了更好的方法。请看ircmaxell的回答。


解析SHOW COLUMNS FROM表的输出;

更多信息请点击:http://dev.mysql.com/doc/refman/5.0/en/show-columns.html