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

本篇文章将教你用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视频教程

快速生成数据库字典

.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;

}

{foreach $table_data as $tableInfo}

{$tableInfo.table_name}(表注释:{$tableInfo.table_comment})

字段类型空默认注释

{foreach $tableInfo['table_fields'] as $field}

{$field.name}

{$field.type}

{$field.null}

{$field.default}

{$field.comment}

{/foreach}

{/foreach}

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值