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之第八天
Oct 09 PHP
php中的数组操作函数整理
Aug 18 PHP
Apache 配置详解(最好的APACHE配置教程)
Jul 04 PHP
深入php-fpm的两种进程管理模式详解
Jun 03 PHP
php中cookie的使用方法
Mar 29 PHP
php+jQuery.uploadify实现文件上传教程
Dec 26 PHP
smarty模板引擎从php中获取数据的方法
Jan 22 PHP
微信公众平台实现获取用户OpenID的方法
Apr 15 PHP
初识ThinkPHP控制器
Apr 07 PHP
PHP处理bmp格式图片的方法分析
Jul 04 PHP
Laravel路由研究之domain解决多域名问题的方法示例
Apr 04 PHP
微信推送功能实现方式图文详解
Jul 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中str_replace函数使用小结
2008/10/11 PHP
2017年最好用的9个php开发工具推荐(超好用)
2017/10/23 PHP
jquery写个checkbox——类似邮箱全选功能
2013/03/19 Javascript
js获取html文件的思路及示例
2013/09/17 Javascript
jQuery选择器源码解读(八):addCombinator函数
2015/03/31 Javascript
PageSwitch插件实现100种不同图片切换效果
2015/07/28 Javascript
javascript时间差插件分享
2016/07/18 Javascript
JavaScript构建自己的对象示例
2016/11/29 Javascript
微信小程序实战之顶部导航栏(选项卡)(1)
2020/06/19 Javascript
JS学习笔记之原型链和利用原型实现继承详解
2019/05/29 Javascript
使用layui的layer组件做弹出层的例子
2019/09/27 Javascript
JS面向对象之多选框实现
2020/01/17 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
[02:43]DOTA2英雄基础教程 德鲁伊
2014/01/13 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
理解生产者消费者模型及在Python编程中的运用实例
2016/06/26 Python
Python守护进程和脚本单例运行详解
2017/01/06 Python
pytorch: tensor类型的构建与相互转换实例
2018/07/26 Python
python可视化实现KNN算法
2019/10/16 Python
tensorflow的计算图总结
2020/01/12 Python
Python chardet库识别编码原理解析
2020/02/18 Python
python GUI库图形界面开发之PyQt5状态栏控件QStatusBar详细使用方法实例
2020/02/28 Python
Python figure参数及subplot子图绘制代码
2020/04/18 Python
Python requests模块安装及使用教程图解
2020/06/30 Python
python 使用csv模块读写csv格式文件的示例
2020/12/02 Python
python爬虫beautifulsoup库使用操作教程全解(python爬虫基础入门)
2021/02/19 Python
css3的图形3d翻转效果应用示例
2014/04/08 HTML / CSS
电子商务专业毕业生自荐书
2014/06/22 职场文书
中学生勤俭节约倡议书
2015/04/29 职场文书
民事二审代理词
2015/05/25 职场文书
订货会主持词
2015/07/01 职场文书
护士医德医风心得体会
2016/01/25 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
SqlServer 垂直分表(减少程序改动)
2021/04/16 SQL Server
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
win10如何快速切换窗口 win10切换窗口快捷键分享
2022/07/23 数码科技