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 相关文章推荐
使用MaxMind 根据IP地址对访问者定位
Oct 09 PHP
PHP数组无限分级数据的层级化处理代码
Dec 29 PHP
关于zend studio 出现乱码问题的总结
Jun 23 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
typecho插件编写教程(四):插件挂载
May 28 PHP
PHP常用设计模式之委托设计模式
Feb 13 PHP
Laravel实现自定义错误输出内容的方法
Oct 10 PHP
PHP制作登录异常ip检测功能的实例代码
Nov 16 PHP
PHP中的函数声明与使用详解
May 27 PHP
thinkPHP5实现数据库添加内容的方法
Oct 25 PHP
php支付宝系列之电脑网站支付
May 30 PHP
Laravel中的chunk组块结果集处理与注意问题
Aug 15 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 syntax error, unexpected $end 错误的一种原因及解决
2008/10/25 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
一组JS创建和操作表格的函数集合
2009/05/07 Javascript
jQuery 白痴级入门教程
2009/11/11 Javascript
Js nodeType 属性全面解析
2013/11/14 Javascript
JS获取单击按钮单元格所在行的信息
2014/06/17 Javascript
JS实现清除指定cookies的方法
2014/09/20 Javascript
SeaJS 与 RequireJS 的差异对比
2014/12/08 Javascript
jQuery实现的背景动态变化导航菜单效果
2015/08/24 Javascript
AngularJS延迟加载html template
2016/07/27 Javascript
总结js中的一些兼容性易错的问题
2017/12/18 Javascript
Vue项目webpack打包部署到Tomcat刷新报404错误问题的解决方案
2018/05/15 Javascript
vue2.0 使用element-ui里的upload组件实现图片预览效果方法
2018/09/04 Javascript
用vuex写了一个购物车H5页面的示例代码
2018/12/04 Javascript
vue3.0中setup使用(两种用法)
2020/12/02 Vue.js
推荐下python/ironpython:从入门到精通
2007/10/02 Python
python获取指定时间差的时间实例详解
2017/04/11 Python
Python3实现的画图及加载图片动画效果示例
2018/01/19 Python
python将回车作为输入内容的实例
2018/06/23 Python
Python列表推导式与生成器用法分析
2018/08/02 Python
对Python2与Python3中__bool__方法的差异详解
2018/11/01 Python
python 统计一个列表当中的每一个元素出现了多少次的方法
2018/11/14 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
新手入门Python编程的8个实用建议
2019/07/12 Python
Python编程中类与类的关系详解
2019/08/08 Python
python防止随意修改类属性的实现方法
2019/08/21 Python
将labelme格式数据转化为标准的coco数据集格式方式
2020/02/17 Python
Python Django中的STATIC_URL 设置和使用方式
2020/03/27 Python
Html5监听手机摇一摇事件的实现
2019/11/07 HTML / CSS
DNA基因检测和分析:23andMe
2019/05/01 全球购物
小学教师自我鉴定
2013/11/07 职场文书
公司任命书模板
2014/06/06 职场文书
会议主持词开场白
2015/05/28 职场文书
2016年春季开学典礼新闻稿
2015/11/25 职场文书
MySQL数据库完全卸载的方法
2022/03/03 MySQL