PHP实现生成数据字典功能示例


Posted in PHP onMay 24, 2018

本文实例讲述了PHP实现生成数据字典功能。分享给大家供大家参考,具体如下:

最近时间紧迫,没有时间发博客,趁现在有点时间向大家分享一个知识点。在咱们做开发的时候 ,也许经常会遇到对数据库分析,做一个数据字典,那么现在好处来了,大家只需要关注我所发送的这个链接轻轻松松帮你们搞定数据字典的设计,再也不用你们下载数据字典那个工具,作为一个开发人员,随便几行代码就应该会搞定这个知识,那么现在废话我也不多说了,大家看底下的代码,大家只需要改一下你的数据库账号和密码然后运行一下就可以了。

效果展示:

PHP实现生成数据字典功能示例

说了这么多废话了,终于开始写代码了:

<?php
/**
* 生成mysql数据字典
*/
//配置数据库
$dbserver  = "127.0.0.1";
$dbusername = "账号";
$dbpassword = "密码";
$database   = "数据库";
//其他配置
$title = '数据字典';
$mysql_conn = @mysql_connect("$dbserver", "$dbusername", "$dbpassword") or die("Mysql connect is error.");
mysql_select_db($database, $mysql_conn);
mysql_query('SET NAMES utf8', $mysql_conn);
$table_result = mysql_query('show tables', $mysql_conn);
//取得所有的表名
while ($row = mysql_fetch_array($table_result)) {
   $tables[]['TABLE_NAME'] = $row[0];
}
//循环取得所有表的备注及表中列消息
foreach ($tables AS $k=>$v) {
   $sql = 'SELECT * FROM ';
   $sql .= 'INFORMATION_SCHEMA.TABLES ';
   $sql .= 'WHERE ';
   $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database}'";
   $table_result = mysql_query($sql, $mysql_conn);
   while ($t = mysql_fetch_array($table_result) ) {
     $tables[$k]['TABLE_COMMENT'] = $t['TABLE_COMMENT'];
   }
   $sql = 'SELECT * FROM ';
   $sql .= 'INFORMATION_SCHEMA.COLUMNS ';
   $sql .= 'WHERE ';
   $sql .= "table_name = '{$v['TABLE_NAME']}' AND table_schema = '{$database}'";
   $fields = array();
   $field_result = mysql_query($sql, $mysql_conn);
   while ($t = mysql_fetch_array($field_result) ) {
     $fields[] = $t;
   }
   $tables[$k]['COLUMN'] = $fields;
}
mysql_close($mysql_conn);
$html = '';
//循环所有表
foreach ($tables AS $k=>$v) {
   //$html .= '<p><h2>'. $v['TABLE_COMMENT'] . ' </h2>';
   $html .= '<table border="1" cellspacing="0" cellpadding="0" align="center">';
   $html .= '<caption>' . $v['TABLE_NAME'] .' '. $v['TABLE_COMMENT']. '</caption>';
   $html .= '<tbody><tr><th>字段名</th><th>数据类型</th><th>默认值</th>
   <th>允许非空</th>
   <th>自动递增</th><th>备注</th></tr>';
   $html .= '';
   foreach ($v['COLUMN'] AS $f) {
     $html .= '<tr><td class="c1">' . $f['COLUMN_NAME'] . '</td>';
     $html .= '<td class="c2">' . $f['COLUMN_TYPE'] . '</td>';
     $html .= '<td class="c3"> ' . $f['COLUMN_DEFAULT'] . '</td>';
     $html .= '<td class="c4"> ' . $f['IS_NULLABLE'] . '</td>';
     $html .= '<td class="c5">' . ($f['EXTRA']=='auto_increment'?'是':' ') . '</td>';
     $html .= '<td class="c6"> ' . $f['COLUMN_COMMENT'] . '</td>';
     $html .= '</tr>';
   }
   $html .= '</tbody></table></p>';
}
//输出
echo '<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>'.$title.'</title>
<style>
body,td,th {font-family:"宋体"; font-size:12px;}
table{border-collapse:collapse;border:1px solid #CCC;background:#efefef;}
table caption{text-align:left; background-color:#fff; line-height:2em; font-size:14px; font-weight:bold; }
table th{text-align:left; font-weight:bold;height:26px; line-height:26px; font-size:12px; border:1px solid #CCC;}
table td{height:20px; font-size:12px; border:1px solid #CCC;background-color:#fff;}
.c1{ width: 120px;}
.c2{ width: 120px;}
.c3{ width: 70px;}
.c4{ width: 80px;}
.c5{ width: 80px;}
.c6{ width: 270px;}
</style>
</head>
<body>';
echo '<h1 style="text-align:center;">'.$title.'</h1>';
echo $html;
echo '</body></html>';
?>

希望本文所述对大家PHP程序设计有所帮助。

PHP 相关文章推荐
用PHP实现将GB编码转换为UTF8
Nov 25 PHP
PHP音乐采集(部分代码)
Feb 14 PHP
收集的PHP中与数组相关的函数
Mar 22 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
php实现加减法验证码代码
Feb 14 PHP
php中unserialize返回false的解决方法
Sep 22 PHP
基于PHP+jQuery+MySql实现红蓝(顶踩)投票代码
Aug 25 PHP
php表单提交实例讲解
Nov 12 PHP
php创建桌面快捷方式实现方法
Dec 31 PHP
Zend Studio使用技巧两则
Apr 01 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
Mar 13 PHP
因str_replace导致的注入问题总结
Aug 08 PHP
tp框架(thinkPHP)实现三次登陆密码错误之后锁定账号功能示例
May 24 #PHP
PHP实现防止表单重复提交功能【基于token验证】
May 24 #PHP
PHP实现微信小程序人脸识别刷脸登录功能
May 24 #PHP
ThinkPHP框架实现的MySQL数据库备份功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的导入、导出数据操作示例
May 24 #PHP
PHP实现一维数组与二维数组去重功能示例
May 24 #PHP
CI框架(CodeIgniter)实现的数据库增删改查操作总结
May 23 #PHP
You might like
window+nginx+php环境配置 附配置搭配说明
2010/12/29 PHP
php设计模式 Decorator(装饰模式)
2011/06/26 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
jQuery AJAX回调函数this指向问题
2010/02/08 Javascript
jquery 3D球状导航的文章分类
2010/07/06 Javascript
JavaScript中的Array对象使用说明
2011/01/17 Javascript
javascript中的=等号个数问题两个跟三个有什么区别
2013/10/23 Javascript
javascript 表格内容排序 简单操作示例代码
2014/01/03 Javascript
通过点击jqgrid表格弹出需要的表格数据
2015/12/02 Javascript
Bootstrap组合上、下拉框简单实现代码
2017/03/06 Javascript
nodejs搭建本地http服务器教程
2017/03/13 NodeJs
Ajax验证用户名或昵称是否已被注册
2017/04/05 Javascript
Node.js Koa2使用JWT进行鉴权的方法示例
2018/08/17 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
vuejs点击class变化的实例
2018/09/05 Javascript
Vue 动态组件与 v-once 指令的实现
2019/02/12 Javascript
vue两组件间值传递 $router.push实现方法
2019/05/15 Javascript
微信小程序Echarts覆盖正常组件问题解决
2019/07/13 Javascript
mpvue实现小程序签到金币掉落动画(api实现)
2019/10/17 Javascript
vue transition 在子组件中失效的解决
2019/11/12 Javascript
基于vue 动态菜单 刷新空白问题的解决
2020/08/06 Javascript
[01:36:19]Secret vs NB 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python Sql数据库增删改查操作简单封装
2016/04/18 Python
python 实现读取一个excel多个sheet表并合并的方法
2019/02/12 Python
Python3+PyInstall+Sciter解决报错缺少dll、html等文件问题
2019/07/15 Python
python文件和文件夹复制函数
2020/02/07 Python
django-crontab实现服务端的定时任务的示例代码
2020/02/17 Python
python实现四人制扑克牌游戏
2020/04/22 Python
Farah官方网站:男士服装及配件
2019/11/01 全球购物
戴尔新加坡官网:Dell Singapore
2020/12/13 全球购物
存储过程和函数的区别
2013/05/28 面试题
临床医学应届生求职信
2013/11/06 职场文书
看古人们是如何赞美老师的?
2019/07/08 职场文书
《西游记》读后感(3篇)
2019/09/20 职场文书
SpringBoot2零基础到精通之数据与页面响应
2022/03/22 Java/Android