- 浏览: 830890 次
- 性别:
- 来自: 南京
文章分类
最新评论
-
xieye:
jetty插件有好几个版本,1.6,1.7,1.8
我选的是用 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
还有,
注:第2部分时,需要先安装jetty,我自己在安装过程 ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
说明一下:实际使用中,导入时我并没有错误。2、我把eclips ...
tapestry入门(翻译)3 导入项目到eclipse -
xieye:
其实还是有一些先决条件的。1是外部环境,2是进步是阶段性的(意 ...
(转载文章)如何愉悦起来:一位精神治疗师的见解 -
mandy_yanzi:
我都已经饿7天了坚持为了我的衣衣
身体健康的问题
前言
无论是刚接手新项目,或者是维护老项目,有一个方便的数据字典可用是最棒哒!
本文是我为了方便使用数据字典而写的代码。
代码无版权,随便使用。
拷贝代码后,只需修改数据库名,主机,用户名,密码,开箱即用。
同时,代码还可以保留自定义的数据字典部分,方便实用。
妈妈再也不用担心我没有好用的数据字典工具了!
源码
全部代码如下,只有一个文件,放在可访问的web目录下即可,附件里也有源码:
tool.php
效果展示:
无论是刚接手新项目,或者是维护老项目,有一个方便的数据字典可用是最棒哒!
本文是我为了方便使用数据字典而写的代码。
代码无版权,随便使用。
拷贝代码后,只需修改数据库名,主机,用户名,密码,开箱即用。
同时,代码还可以保留自定义的数据字典部分,方便实用。
妈妈再也不用担心我没有好用的数据字典工具了!
源码
全部代码如下,只有一个文件,放在可访问的web目录下即可,附件里也有源码:
tool.php
<?php class Tool { // 这是库名,需修改。第1处修改 const dbname='mydb'; private $mysqli; // $db 是数据库连接,需修改使用。第2处修改。 // // 这里设置主机名,用户名,密码 public function __construct() { $this->mysqli = new mysqli('127.0.0.1', 'root', '', self::dbname); $sql="set names utf8"; $this->mysqli->query($sql); } /** * 数据字典生成器 * * 可以从数据库中直接读出数据字典并直接呈现,只需配置好数据库连接。 * 还可以修改数据库中的内容(或添加上原来数据字典里没有的内容)。 * * 代码可以随意使用和修改。 * * 2017 12 23 * * @author yyy */ public function db_dict ( ) { $db_name = self::dbname; // 这是数据库名 // 先查出表的元数据,和字段的元数据。 $sql = " select table_name,table_comment from information_schema.tables where table_schema='{$db_name}' order by table_name asc "; $table_arr = $this->mysqli->query($sql)->fetch_all(MYSQLI_ASSOC); // var_dump($table_arr);return; $sql = " SELECT T.TABLE_NAME AS 'table_name', T. ENGINE AS 'engine', C.COLUMN_NAME AS 'column_name', C.COLUMN_TYPE AS 'column_type', C.COLUMN_COMMENT AS 'column_comment' FROM information_schema.COLUMNS C INNER JOIN information_schema.TABLES T ON C.TABLE_SCHEMA = T.TABLE_SCHEMA AND C.TABLE_NAME = T.TABLE_NAME WHERE T.TABLE_SCHEMA = '{$db_name}' "; $column_arr = $this->mysqli->query($sql)->fetch_all(MYSQLI_ASSOC); $column_arr = $this->my_comment( $column_arr ); // 构造表的索引 $table_list_str = ''; foreach ($table_arr as $v) { $table_list_str .= '<li><a href="#' . $v['table_name'] . '">' . $v['table_name'] . "({$v['table_comment']})" . '</a></li>' . "\n"; } // 构造数据字典的内容 $table_str = ''; foreach ($table_arr as $v) { $table_name = $v['table_name']; $table_comment = $v['table_comment']; $table_str .= <<<html [url=#header][/url] <p class='table_jiange'><a name='{$table_name}'> </a> <table width="100%" border="0" cellspacing="0" cellpadding="3"> <tr> <td width="70%" class="headtext" align="left" valign="top"> {$table_name}({$table_comment})</td> <td width="30%" class="headtext" align="right" > </td> <tr> </table> <table width="100%" cellspacing="0" cellapdding="2" class="table2" > <tr> <td align="center" width='15%' valign="top" class="fieldcolumn">字段</td> <td align="center" width='15%' valign="top" class="fieldcolumn">类型</td> <td align="center" width='70%' valign="top" class="fieldcolumn">注释</td> </tr> html; foreach ($column_arr as $vv) { if ($vv['table_name'] == $table_name) { $table_str .= <<<html <tr> <td align="left" width='15%' > <td align="left" width='15%' ><p class="normal">{$vv['column_type']}</td> <td align="left" width='70%' >{$vv['column_comment']}</td> </tr> html; } } $table_str .= "</table>\n\n"; } // 开始构造整个数据字典的html页面 $html = <<<html <html> <head> <title>{$db_name}数据字典</title> <meta http-equiv="Content-Type" content="text/html; charset=utf8"> <style type="text/css"> <!-- .toptext {font-family: verdana; color: #000000; font-size: 20px; font-weight: 600; width:550; background-color:#999999; } .normal { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 16px; font-weight: normal; color: #000000} .normal_ul { font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 12px; font-weight: normal; color: #000000} .fieldheader {font-family: verdana; color: #000000; font-size: 16px; font-weight: 600; width:550; background-color:#c0c0c0; } .fieldcolumn {font-family: verdana; color: #000000; font-size: 16px; font-weight: 600; width:550; background-color:#ffffff; } .header {background-color: #ECE9D8;} .headtext {font-family: verdana; color: #000000; font-size: 20px; font-weight: 600; } BR.page {page-break-after: always} //--> </style> <style> a:link{text-decoration:none;} a:visited{text-decoration:none;} a:active{text-decoration:none;} body { padding:20px; } #ul2 { margin:0; padding:0; } #ul2 li { display:inline; float:left; margin:5 5px; padding:0px 0px; width:230px; background-color:#Eee; border:1px #bbb dashed; } #ul2 li a{ display:block; font-size:14px; color:#000; padding:10px 5px; font-weight:bolder; } #ul2 li:hover { background-color:#73B1E0; } #ul2 li:hover a { color:#FFF; } #div2 { clear:both; margin:20px; } .table2 td { padding:5px 10px; } .table2 tr:hover td { background-color:#73B1E0; } .table2 tr:hover td p{ color:#FFF; } .table2 {border-right:1px solid #aaa; border-bottom:1px solid #aaa} .table2 td{border-left:1px solid #aaa; border-top:1px solid #aaa} .table2 tr:nth-child(even){background:#F4F4F4;} .headtext { padding:10px; } p.pa{ color:blue; } .table_jiange{ height:1px; margin:20px; padding:0; } </style> </head> <body bgcolor='#ffffff' topmargin="0"> <table width="100%" border="0" cellspacing="0" cellpadding="5"> <tr> <td class="toptext"><p align="center">{$db_name}数据字典</td> </tr> </table> <a name="header"> </a> <ul id='ul2'> {$table_list_str} </ul> <div id="div2"></div> <br class=page> {$table_str} [url=#header]<p class="normal">回到首页[/url] <h1 width="100%"> </body> </html> html; mysqli_close($this->mysqli); echo $html; } /** * 自定义注释,可以完美覆盖表中的注释。 * 这里的account 表,id字段,只是示例,可以替换成你的表名和字段名。 * @return string[][] */ private function my_comment_list ( ) { $arr = [ [ 'table_name' => 'account', 'column_name' => 'id', 'column_comment' => '自增主键' ], [ 'table_name' => 'account', 'column_name' => 'cid', 'column_comment' => '栏目id' ], ]; return $arr; } private function my_comment ( $arr ) { $my_table = $this->my_comment_list( ); foreach ($arr as $k => &$v) { foreach ($my_table as $my) { if ($v['table_name'] == $my['table_name'] && $v['column_name'] == $my['column_name']) { $v['column_comment'] = $my['column_comment']; } } } return $arr; } } $dict = new Tool(); $dict->db_dict();
效果展示:
发表评论
-
召唤神龙 - 安装 centos 8, php 8, mysql 8, laravel 8 的整套 php 运行环境
2020-11-27 16:26 674本文编写时间:2020-11-27 传说集齐龙珠可以召唤神 ... -
centos8 使用阿里镜像快速安装php7.4套件
2020-11-15 00:48 809centos8 使用阿里镜像快速安装php7.4套件 本文只 ... -
centos7 使用阿里镜像快速安装php7.4套件
2020-11-15 00:32 1218本文只考虑centos7 今日 2020-11-16 rem ... -
composer常用命令
2020-11-05 14:46 1439列出当前全局配置 composer config -l -g ... -
期待centos8+php8 + mysql8 + laravel8,8888
2020-10-29 19:24 486期待centos8+php8 + mysql8 目前主要使用 ... -
ubuntu 安装 php7.4以及各类插件
2020-10-24 13:20 1089ubuntu 安装 php7.4以及各类插件 安装系统 最近 ... -
宝塔定义站点
2020-02-24 10:41 2宝塔定义站点。 1111111111111111111111 ... -
让php-fpm以root账号运行
2020-02-19 21:41 809一般来说,我们没有这种需求,但是当需要时, 可以让php-fp ... -
将代码部署到coding.net
2020-01-10 14:20 631coding.net 是一个git仓库,有免费有收费。 首先 ... -
php部署工具deployer技巧 - vendor目录创建
2020-01-06 12:06 888deployer是个好东西,可是每次都composer ,其实 ... -
自定义redis多个实例
2020-01-04 01:17 645假如多个项目部署到同一台服务器,有时会被redis的各项目前缀 ... -
推荐使用php的部署工具 deployer
2020-01-03 16:48 881php部署代码可以使用 https://deployer.or ... -
使用composer 类库 cachetool 清除opcache 的缓存
2020-01-03 16:38 962php的生产服务器上,需要把opche打开。 但有时,会被缓 ... -
laravel容器学习体会
2019-12-31 15:11 654根据文档与实测结果 假设我在app下建一个Services目 ... -
phalcon 自定义超强日志类
2019-12-18 10:00 826phalcon自带的日志文件类,有两个麻烦之处。 1、路径不能 ... -
自定义后台的使用
2019-12-18 05:22 423如果自己写后台,保存用户的表单请求值 所有的情况如下: 1 ... -
phalcon 自定义事件使用的多种方式
2019-12-16 20:43 778方法1:官方文档的方式。 这是控制器: public ... -
phalcon对控制器返回值的使用以输出json
2019-12-16 19:17 816在phalcon里,控制器的Action的方法的返回值没啥用。 ... -
phalcon数据库DB使用实例
2019-12-12 17:12 694整理了一下phalcon的db使用,写了个demo。 ... -
php-redis5.0降级成php-redis4.3
2019-08-22 00:01 889最新版本的php的redis插件,版本是5.0 但是可能会有 ...
相关推荐
"中冲剑"讲述了ECSHOP的数据字典,这涉及到数据库结构和字段含义,理解数据字典有助于开发者在编写代码时准确地访问和操作数据库。 "关冲剑"则是关于模板使用的简易说明,它教导开发者如何有效地利用模板系统,创建...
8. **bestshop-php后端源码**:这部分源码构成了小程序商城的后端系统,可能使用PHP语言编写,支持处理用户请求、业务逻辑、数据交互等功能。通过阅读源码,开发者可以学习到如何构建高可用性和可扩展性的电商系统。...
数据字典详细记录了每个数据项的含义和属性;功能需求明确了用户对网站的具体期望,如搜索、预订、评论等功能;性能需求涉及网站响应速度、并发处理能力等;设计约束可能包括安全性、兼容性、可扩展性等方面的要求。...
元组、列表和字典是Python中三种重要的数据结构,分别用于存储固定序列、可变序列和键值对集合。本章节将深入探讨这些数据结构的特点、操作方法及其适用场景,帮助读者熟练运用它们来处理复杂的数据。 ### CGI介绍 ...
通过界面模板与代码模板管理功能,可自定义生成程序的界面风格与输出代码,将最大限度提高ASPX/ASP/PHP/JSP等各种程序的编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试(需安装IIS或对应WEB...
《风越.Net代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx两种代码框架及多个...
《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层...
风越.net代码生成器 [FireCode Creator] 是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层...
内置的.net代码框架,能建立C#语言的.net解决方案,可在VS2005中直接编辑,既能帮助.net初学者快速入门,更可最大限度提高.net程序员的代码编写效率。 01、支持生成的ASPX/ASP/PHP/JSP等页面在本机自动发布、调试...
《风越代码生成器 [FireCode Creator]》是一款采用.Net FrameWork2.0框架、基于多种数据库的程序代码生成软件,可快速建立数据信息的:添加、编辑、查看、列表、搜索功能。默认提供asp、aspx WEB程序、.net普通三层...
ECShop的数据字典是指系统中用于存储各种数据和配置信息的数据库表。熟悉这些表结构可以帮助开发者更好地理解系统的工作原理,并为二次开发提供支持。 **1. 数据表概述** ECShop的核心数据表主要包括: - `ecs_...