各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

thinkphp5.0框架怎样生成数据库字典

管理员 2023-09-05
PHP
129

thinkphp5.0框架怎样生成数据库字典

内容导读

收集整理的这篇技术教程文章主要介绍了thinkphp5.0框架怎样生成数据库字典,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3939字,纯文字阅读大概需要6分钟

内容图文

本篇文章将教你用thinkphp5.0生成数据库字典,感兴趣的朋友一定不要错过哦!

示例代码使用PHP框架:Thinkphp5.0

PHP代码: 相关教程:PHP视频教程

/**    * 生成数据库字典html    * 可直接另存为再copy到word文档中使用    *    * @return mixed    */   public function dataDictionary()   {       $tables = Db::query('SHOW TABLE STATUS');       $table_list = array_map('array_change_key_case', $tables);       $table_data = [];       foreach ($table_list as $item) {           $table_name = str_replace(config('database.prefix'),'',$item['name']);           $table_fields = $this->showColumns($table_name);           foreach ($table_fields as &$fieldItem) {               $fieldItem['comment'] = $this->getDbColumnComment($table_name, $fieldItem['name']);           }           $table_data[] = [               'table_name' => $item['name'],               'table_comment' => $item['comment'],               'table_fields' => $table_fields           ];       }       $this->assign('table_data', $table_data);       return $this->fetch('');   }   /**    * 显示表结构信息    *    * @param string $table    * @return array    */   private function showColumns($table){       $sql = 'SHOW COLUMNS FROM `'.config('database.prefix').$table.'`';       $result = Db::query($sql);       if ($result === false) return array();       $array = array();       if (!empty($result)) {           foreach ($result as $k=>$v) {               $array[$v['Field']] = [                   'name'    => $v['Field'],                   'type'    => $v['Type'],                   'null'       => $v['Null'],                   'default' => $v['Default'],                   'primary' => (strtolower($v['Key']) == 'pri'),                   'autoinc' => (strtolower($v['Extra']) == 'auto_increment'),               ];           }       }       return $array;   }   /**    * 获取数据库字段注释    *    * @param string $table_name 数据表名称(必须,不含前缀)    * @param string|boolean $field 字段名称(默认获取全部字段,单个字段请输入字段名称)    * @param string $table_schema 数据库名称(可选)    * @return string    */   private function getDbColumnComment($table_name = '', $field = true, $table_schema = ''){       // 接收参数       $database = config('database');       $table_schema = empty($table_schema) ? $database['database'] : $table_schema;       $table_name = $database['prefix'] . $table_name;       // 处理参数       $param = [           $table_name,           $table_schema       ];       // 字段       $columnName = '';       if($field !== true){           $param[] = $field;           $columnName = "AND COLUMN_NAME = ?";       }       // 查询结果       $result = Db::query("SELECT COLUMN_NAME as field,column_comment as comment FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = ? AND table_schema = ? $columnName", $param);       if(empty($result) && $field !== true){           return $table_name . '表' . $field . '字段不存在';       }       // 处理结果       foreach($result as $k => $v){           $data[$v['field']] = $v['comment'];           if(strpos($v['comment'], '#*#') !== false){               $tmpArr = explode('#*#', $v['comment']);               $data[$v['field']] = json_decode(end($tmpArr), true);           }       }       // 字段注释格式不正确       if(empty($data)){           return $table_name . '表' . $field . '字段注释格式不正确';       }       return count($data) == 1 ? reset($data) : $data;   }

Html代码: 相关教程:HTML视频教程

 <html><head>    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">    <title>快速生成数据库字典</title>    <style type="text/css">        .table-name {            text-align: center;            margin: 15px auto;            font-weight: bold;            font-size: 20px;        }        table {            border-collapse: collapse;            margin: 0 auto;            text-align: center;            width: 550px;        }        table caption {            margin: 15px auto;        }        table td, table th {            border: 1px solid #cad9ea;            color: #666;            height: 30px;        }        table thead th {            background-color: #CCE8EB;            width: 100px;        }        table tr:nth-child(odd) {            background: #fff;        }        table tr:nth-child(even) {            background: #F5FAFA;        }    </style></head><body>{foreach $table_data as $tableInfo}<div class="table-name">{$tableInfo.table_name}(表注释:{$tableInfo.table_comment})</div><table class="table">    <thead>    <tr>        <th>字段</th>        <th>类型</th>        <th>空</th>        <th>默认</th>        <th>注释</th>    </tr>    </thead>    <tbody>    {foreach $tableInfo['table_fields'] as $field}    <tr>        <td>            {$field.name}        </td>        <td>            {$field.type}        </td>        <td>            {$field.null}        </td>        <td style="max-width: 30px;">            {$field.default}        </td>        <td>            {$field.comment}        </td>    </tr>    {/foreach}    </tbody></table>{/foreach}</body></html>

想了解更多消息,请关注PHP中文网的其他教程哦!

以上就是thinkphp5.0框架 怎样生成数据库字典的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的thinkphp5.0框架怎样生成数据库字典全部内容,希望文章能够帮你解决thinkphp5.0框架怎样生成数据库字典所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部