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 strtotime 函数UNIX时间戳
Jan 14 PHP
php 计算两个时间戳相隔的时间的函数(小时)
Dec 18 PHP
php快速url重写更新版[需php 5.30以上]
Apr 25 PHP
php数组函数序列之array_keys() - 获取数组键名
Oct 30 PHP
关于初学PHP时的知识积累总结
Jun 07 PHP
Codeigniter框架的更新事务(transaction)BUG及解决方法
Jul 25 PHP
PHP采用自定义函数实现遍历目录下所有文件的方法
Aug 19 PHP
php中使用gd库实现下载网页中所有图片
May 12 PHP
ThinkPHP路由机制简介
Mar 23 PHP
PHP 网站修改默认访问文件的nginx配置
May 27 PHP
PHP实现可精确验证身份证号码的工具类示例
May 31 PHP
PHP中echo与print区别点整理
Mar 09 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
一个PHP数组应该有多大的分析
2009/07/30 PHP
PHP常用工具类大全附全部代码下载
2015/12/07 PHP
yii框架使用分页的方法分析
2019/07/25 PHP
php菜单/评论数据递归分级算法的实现方法
2019/08/01 PHP
jquery 模拟雅虎首页的点击对话框效果
2010/04/11 Javascript
juqery 学习之三 选择器 简单 内容
2010/11/25 Javascript
简单的jquery拖拽排序效果实现代码
2011/09/20 Javascript
setTimeout的延时为0时多个浏览器的区别
2012/05/23 Javascript
JavaScript控制table某列不显示的方法
2015/03/16 Javascript
浅谈jQuery中的事件
2015/03/23 Javascript
js实现鼠标点击文本框自动选中内容的方法
2015/08/20 Javascript
Jquery1.9.1源码分析系列(十五)动画处理之外篇
2015/12/04 Javascript
js学习总结之DOM2兼容处理重复问题的解决方法
2017/07/27 Javascript
原生JS实现 MUI导航栏透明渐变效果
2017/11/07 Javascript
node.js使用redis储存session的方法
2018/09/26 Javascript
vue实现计步器功能
2019/11/01 Javascript
微信小程序如何实现radio单选框单击打勾和取消
2020/01/21 Javascript
Vue中qs插件的使用详解
2020/02/07 Javascript
基于JavaScript的数据结构队列动画实现示例解析
2020/08/06 Javascript
[02:22:36]《加油!DOTA》总决赛
2014/09/19 DOTA
Windows和Linux下Python输出彩色文字的方法教程
2017/05/02 Python
python 通过xml获取测试节点和属性的实例
2018/03/31 Python
Django框架model模型对象验证实现方法分析
2019/10/02 Python
Python timer定时器两种常用方法解析
2020/01/20 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
教你一分钟在win10终端成功安装Pytorch的方法步骤
2021/01/28 Python
美国派对用品及装饰品网上商店:Shindigz
2016/07/30 全球购物
携程英文网站:Trip.com
2017/02/07 全球购物
美国韩国化妆品和护肤品购物网站:Beautytap
2018/07/29 全球购物
怎么可以提高数据库查询数据的速度
2014/06/28 面试题
管事部库房保管员岗位职责
2014/02/21 职场文书
小学二年级评语
2014/04/21 职场文书
2015年万圣节活动总结
2015/03/24 职场文书
《没有任何借口》读后感:完美的执行能力
2020/01/07 职场文书
详解MongoDB的条件查询和排序
2021/06/23 MongoDB
CSS list-style-type属性使用方法
2023/05/21 HTML / CSS