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 相关文章推荐
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
让的PHP代码飞起来的40条小技巧(提升php效率)
Apr 12 PHP
php文章内容分页并生成相应的htm静态页面代码
Jun 07 PHP
php cli模式学习(PHP命令行模式)
Jun 03 PHP
PHP设置一边执行一边输出结果的代码
Sep 30 PHP
学习php过程中的一些注意点的总结
Oct 25 PHP
ThinkPHP跳转页success及error模板实例教程
Jul 17 PHP
PHP启动windows应用程序、执行bat批处理、执行cmd命令的方法(exec、system函数详解)
Oct 20 PHP
PHP批量生成图片缩略图的方法
Jun 18 PHP
PHP设计模式之委托模式定义与用法简单示例
Aug 13 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
Dec 12 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中截取中文字符串的代码小结
2011/07/17 PHP
CodeIgniter 完美解决URL含有中文字符串
2016/05/13 PHP
javascript delete 使用示例代码
2010/03/29 Javascript
基于dom编程中 动态创建与删除元素的使用
2013/04/17 Javascript
jQuery异步加载数据并添加事件示例
2014/08/24 Javascript
JQuery中DOM实现事件移除的方法
2015/06/13 Javascript
JavaScript简单下拉菜单特效
2016/09/13 Javascript
详解js的事件代理(委托)
2016/12/22 Javascript
javascript闭包功能与用法实例分析
2017/04/06 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
Es6 Generator函数详细解析
2018/02/24 Javascript
三种Webpack打包方式(小结)
2018/09/19 Javascript
如何在基于vue-cli的项目自定义打包环境
2018/11/10 Javascript
Vue组件通信$attrs、$listeners实现原理解析
2020/09/03 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
Python程序设计入门(4)模块和包
2014/06/16 Python
完美解决python遍历删除字典里值为空的元素报错问题
2016/09/11 Python
python3 破解 geetest(极验)的滑块验证码功能
2018/02/24 Python
Python文本处理之按行处理大文件的方法
2018/04/09 Python
Python的matplotlib绘图如何修改背景颜色的实现
2019/07/16 Python
Python解析json代码实例解析
2019/11/25 Python
python 已知一个字符,在一个list中找出近似值或相似值实现模糊匹配
2020/02/29 Python
python3.4中清屏的处理方法
2020/07/06 Python
使用Python+Appuim 清理微信的方法
2021/01/26 Python
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
ORACLE十问
2015/04/20 面试题
外贸业务员的岗位职责
2013/11/23 职场文书
大学同学聚会邀请函
2014/01/19 职场文书
单位承诺书格式
2014/05/21 职场文书
2014年党员教师自我剖析材料
2014/09/30 职场文书
民政局离婚协议书范本
2014/10/20 职场文书
《植物妈妈有办法》教学反思
2016/02/23 职场文书
微软PC Health Check电脑健康状况检查应用下载(Win11配置检测工具)
2021/06/26 数码科技
浅谈MySQL之select优化方案
2021/08/07 MySQL
Windows10安装Apache2.4的方法步骤
2022/06/25 Servers