tp导出mysql数据字典Markdown格式

tp导出mysql数据字典

具体代码如下所示
//使用show table 显示所有表
    function getMysqlDicitionaryToMd()
    {
        $dbname = C('DB_NAME');
        $model = M(); //获取模型Tp5中则使用Db
        //获取所有表
        $result = $model->query("show tables");
        if (count($result) > 0) {
            $mark = '# ' . $dbname . '数据库' . PHP_EOL;
            foreach ($result as $table) {
                //取出单张表
                $table_name = $table["tables_in_{$dbname}"];
                //获取表字段
                $obj = $model->query("show full columns from {$table_name}");
                //取出表对象,获得表说明
                $table_comment = $model->query("SELECT TABLE_COMMENT FROM INFORMATION_SCHEMA.TABLES WHERE table_name = '{$table_name}'")[0];
                $mark .= '### ' . $table_name . ' ' . $table_comment['table_comment'] . PHP_EOL;
                $mark .= '|  字段名  |  数据类型  |  默认值  |  是否可空  |  备注  |' . PHP_EOL;
                $mark .= '| ------ | ------ | ------ | ------ |  ------ |' . PHP_EOL;
                foreach ($obj as $data) {
                    $mark .= '| ' . $data['field'] . ' | ' . $data['type'] . ' | ' . $data['default'] . ' | ' . $data['null'] . ' | ' . $data['comment'] . ' | ' . PHP_EOL;
                }
                //获取建表sql
                $sql = $model->query("show create table {$table_name}")[0];
                $mark .= '```sql' . PHP_EOL;
                $mark .= $sql["create table"] . PHP_EOL;
                $mark .= '```' . PHP_EOL;
            }
            $data = date("YmdHis");
            file_put_contents('数据库' . $dbname . '表结构说明-' . $data . '.md', $mark, FILE_APPEND);
            echo'字典导出成功';
        }
    }
导出结果如下实例

db_huahui数据库

about 测试注释

字段名数据类型默认值是否可空备注
idint(11) unsignedNO
typevarchar(50)NO
titlevarchar(150)NO
thumbvarchar(150)NO
formvarchar(50)NO
urlvarchar(150)NO
contenttextNO
view_numsmediumint(9)0NO
statustinyint(1)1NO
create_timeint(11)0NO
CREATE TABLE `about` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `type` varchar(50) NOT NULL,
  `title` varchar(150) NOT NULL,
  `thumb` varchar(150) NOT NULL,
  `form` varchar(50) NOT NULL,
  `url` varchar(150) NOT NULL,
  `content` text NOT NULL,
  `view_nums` mediumint(9) NOT NULL DEFAULT '0',
  `status` tinyint(1) NOT NULL DEFAULT '1',
  `create_time` int(11) NOT NULL DEFAULT '0',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8mb4 COMMENT='测试注释'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值