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

对此有疑问吗?


当前回答

如果你只需要字段名和类型(可能是为了方便复制粘贴到Excel中):

SELECT COLUMN_NAME, DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_SCHEMA='databasenamegoeshere'
AND DATA_TYPE='decimal' and TABLE_NAME = 'tablenamegoeshere'

删除

DATA_TYPE='decimal'

如果需要所有数据类型

其他回答

所有答案中最简单的解决方案:

DESC `table name`

or

DESCRIBE `table name`

or

SHOW COLUMNS FROM `table name`

使用mysql_fetch_field()查看所有列数据。参见手册。

$query = 'select * from myfield';
$result = mysql_query($query);
$i = 0;
while ($i < mysql_num_fields($result))
{
   $fld = mysql_fetch_field($result, $i);
   $myarray[]=$fld->name;
   $i = $i + 1;
}

“警告 这个扩展在PHP 5.5.0已经弃用了,将来也会被移除。”

我以前做过这种事。

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

当你想检查你的所有表结构与一些文件,然后使用这段代码。在这个查询中,我选择column_name,column_type和table_name以获取更多详细信息。我使用按列的顺序,所以我可以很容易地看到它。

SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' order by DATA_TYPE;

如果你只想检查双类型文件,那么你可以很容易地做到这一点

SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME,DATA_TYPE 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' AND DATA_TYPE like '%bigint%'  order by DATA_TYPE;

如果你想检查哪个字段允许空类型等,那么你可以使用这个

SELECT `COLUMN_NAME`,COLUMN_TYPE,TABLE_NAME,IS_NULLABLE,DATA_TYPE 
FROM `INFORMATION_SCHEMA`.`COLUMNS` 
WHERE `TABLE_SCHEMA`='yourdatabasename' and DATA_TYPE like '%bigint%' and IS_NULLABLE ='NO' order by COLUMN_TYPE;

你想检查更多,然后认为链接也帮助你。

https://dev.mysql.com/doc/refman/5.7/en/columns-table.html

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();