MySQL 显示列意外行为

MySQL SHOW COLUMNS unexpected behavior

我有以下 PHP 代码:

$res = mysqli_query($this->get_connection(),"SHOW COLUMNS FROM " . $this->get_table());
$mat = mysqli_fetch_assoc($res);
var_dump($mat);

连接正常,正在return发送数据,所以我们可以跳过这部分。

问题是,据我了解,SHOW COLUMNS 应该 return 在我的 table 中每一列一行。但是当我运行这段代码针对tb_categoria时,其描述是:

CREATE TABLE IF NOT EXISTS `tb_categoria` (
    `id_categoria` int(11) NOT NULL AUTO_INCREMENT COMMENT 'CHAVE DA TABELA',
    `descricao_categoria` varchar(100) NOT NULL COMMENT 'NOME DA CATEGORIA (PRODUTO)',
    `situacao_categoria` tinyint(1) NOT NULL DEFAULT '1' COMMENT 'SITUACAO DA CATEGORIA ( 0 INATIVO - 1 ATIVO)',
    `imagem_categoria` varchar(100) NOT NULL DEFAULT '' COMMENT 'IMAGEM PRINCIPAL DA CATEGORIA (PRODUTO)',
    `legenda_categoria` varchar(500) DEFAULT NULL COMMENT 'LEGENDA DA CATEGORIA (HOME)',
    `resumo_categoria` text COMMENT 'RESUMO DA CATEGORIA (DETALHE)',
    `ordenacao_categoria` int(3) DEFAULT NULL COMMENT 'ORDEM DA CATEGORIA',
    `description_categoria` varchar(255) DEFAULT NULL,
    `keywords_categoria` varchar(255) DEFAULT NULL,
    `title_categoria` varchar(255) DEFAULT NULL,
    PRIMARY KEY (`id_categoria`),
    KEY `situacao_categoria` (`situacao_categoria`) USING BTREE,
    KEY `descricao_categoria` (`descricao_categoria`) USING BTREE
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=193 ;

它是关于 'id_categoria' 第一列的 return 信息。

有没有人遇到过这个问题?有什么建议吗?

使用while循环遍历所有列。

    $res = mysqli_query($this->get_connection(),"SHOW COLUMNS FROM " . $this->get_table());
   while($mat = mysqli_fetch_assoc($res)){
    var_dump($mat);
   }