从SHOW CREATE TABLE中提取列名

时间:2014-11-10 14:13:25

标签: php mysql

我正在使用

$row = mysqli_fetch_row(mysqli_query($conx, "SHOW CREATE TABLE $table"));

在循环中获取我的架构数据,这很好。 我还需要将列名放在一个数组中。 有没有办法从$ row数组中提取它们? 或者我是否需要运行单独的SHOW COLUMNS才能做到这一点?

2 个答案:

答案 0 :(得分:1)

为什么不使用information_schema

"SELECT * FROM information_schema.COLUMNS WHERE TABLE_NAME = '$table'"

答案 1 :(得分:1)

如果您获取的create table结果如下所示:

CREATE TABLE `TableName` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(50) NOT NULL,
  `message` varchar(250) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1

您可以创建一个查找“`[a-zA-Z0-9 _-] *`”的正则表达式,除第一个匹配外,它们将是列名。