我想让所有的mysql表的col名称在php数组?
对此有疑问吗?
我想让所有的mysql表的col名称在php数组?
对此有疑问吗?
当前回答
此查询获取数据库中所有列的列表,而无需指定表名。它返回一个只包含列名的列表:
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_schema = 'db_name'
但是,当我在phpmyadmin中运行这个查询时,它显示了一系列错误。尽管如此,它还是奏效了。所以要谨慎使用。
其他回答
不确定这是否是你想要的,但这对我来说很管用:
$query = query("DESC YourTable");
$col_names = array_column($query, 'Field');
这将返回表或数组中的列名/变量名作为字符串的简单数组,这是我动态构建MySQL查询所需要的。令我沮丧的是,我根本不知道如何在PHP中很好地索引数组,所以我不确定如何处理来自DESC或SHOW的结果。希望我的回答对像我这样的初学者有帮助!
print_r($col_names);
所有答案中最简单的解决方案:
DESC `table name`
or
DESCRIBE `table name`
or
SHOW COLUMNS FROM `table name`
这将生成一个带逗号分隔符的列名字符串:
SELECT CONCAT('(',GROUP_CONCAT(`COLUMN_NAME`),')')
FROM `INFORMATION_SCHEMA`.`COLUMNS`
WHERE `TABLE_SCHEMA`='database_name'
AND `TABLE_NAME`='table_name';
我在SQL Server中尝试过这个查询,这对我有用:
SELECT name FROM sys.columns WHERE OBJECT_ID = OBJECT_ID('table_name')
似乎有两种方法:
DESCRIBE `tablename`
or
SHOW COLUMNS FROM `tablename`
更多描述请点击:http://dev.mysql.com/doc/refman/5.0/en/describe.html