首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 綜合知識

PHP 获取 MySQL 表字段详细信息:SHOW FULL COLUMNS 实战指南

     編輯:PHP 綜合知識

开发中常需动态获取表结构(生成 CRUD、构建迁移、文档自动化)。MySQL SHOW FULL COLUMNS 返回字段名、类型、排序规则、是否为空、键类型、默认值、额外属性、权限、注释等完整元数据。本文给出标准查询代码与结果字段详解。

核心 SQL 速查

语句用途
SHOW DATABASES列出所有数据库
SHOW TABLES [FROM db_name]列出库中表
SHOW CREATE TABLE tbl_name导出建表 DDL
SHOW TABLE STATUS [FROM db_name]表状态(行数、引擎、自增值等)
SHOW COLUMNS FROM tbl_name [FROM db_name]列出字段(简略)
SHOW FULL COLUMNS FROM tbl_name [FROM db_name]列出字段完整详情(推荐)
SHOW INDEX FROM tbl_name [FROM db_name]列出索引

PHP 标准查询代码

connect_errno) {
    die("Connect failed: " . $mysqli->connect_error);
}

$table = 'your_table_name';
$res = $mysqli->query("SHOW FULL COLUMNS FROM `$table`");
if (!$res) {
    die("Query failed: " . $mysqli->error);
}

$fields = [];
while ($row = $res->fetch_assoc()) {
    $fields[] = $row;
}
$res->free();

print_r($fields);
/* 输出示例:
Array(
    [0] => Array(
        [Field] => id
        [Type] => char(2)
        [Collation] => utf8_general_ci
        [Null] => NO
        [Key] => PRI
        [Default] =>
        [Extra] =>
        [Privileges] => select,insert,update,references
        [Comment] =>
    ),
    [1] => Array(
        [Field] => title
        [Type] => char(50)
        [Collation] => utf8_general_ci
        [Null] => YES
        [Key] =>
        [Default] =>
        [Extra] =>
        [Privileges] => select,insert,update,references
        [Comment] => 建议存储:标题、姓名等信息
    ),
    ...
)
*/
?>

返回字段详解

键名含义示例
Field字段名id
Type数据类型(含长度)varchar(255)
Collation字符集排序规则utf8mb4_general_ci
Null是否允许 NULLYES/NO
Key索引类型PRI(主键)、UNI(唯一)、MUL(普通索引)
Default默认值NULL、'0'、CURRENT_TIMESTAMP
Extra额外信息auto_increment、on update CURRENT_TIMESTAMP
Privileges当前用户权限select,insert,update,references
Comment字段注释建议存储:标题...

替代方案:mysqli_result::fetch_fields

query("SELECT * FROM `$table` LIMIT 1");
$meta = $res->fetch_fields(); // 返回对象数组,含 name, type, length, flags, decimals 等
// 但无法获取 Comment、Default 等完整元数据
?>

结论:SHOW FULL COLUMNS 是获取完整表结构元数据的标准方式,配合 information_schema.COLUMNS 表可做跨库跨表的复杂元数据查询。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved