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 SQL防注入代码集合
Apr 25 PHP
PHP 转义使用详解
Jul 15 PHP
PHP循环结构实例讲解
Feb 10 PHP
ThinkPHP使用UTFWry地址库进行IP定位实例
Apr 01 PHP
ThinkPHP实现事务回滚示例代码
Jun 23 PHP
php中mkdir函数用法实例分析
Nov 15 PHP
php从memcache读取数据再批量写入mysql的方法
Dec 29 PHP
php文件夹的创建与删除方法
Jan 24 PHP
kindeditor 加入七牛云上传的实例讲解
Nov 12 PHP
PHP实现的日历功能示例
Sep 01 PHP
PHP如何根据文件头检测文件类型实例代码
Oct 14 PHP
Thinkphp5 自定义上传文件名的实现方法
Jul 23 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根据分类合并数组的方法实例详解
2013/11/06 PHP
三个思路解决laravel上传文件报错:413 Request Entity Too Large问题
2017/11/13 PHP
javascript 弹出的窗口返回值给父窗口具体实现
2013/11/23 Javascript
jquery实现将获取的颜色值转换为十六进制形式的方法
2014/12/20 Javascript
nodejs URL模块操作URL相关方法介绍
2015/03/03 NodeJs
javascript原生ajax写法分享
2016/04/10 Javascript
JavaScript从数组的indexOf()深入之Object的Property机制
2016/05/11 Javascript
实例讲解jQuery中对事件的命名空间的运用
2016/05/24 Javascript
通过jquery-ui中的sortable来实现拖拽排序的简单实例
2016/05/24 Javascript
简单实现jQuery进度条轮播实例代码
2016/06/20 Javascript
JS中script标签defer和async属性的区别详解
2016/08/12 Javascript
BootStrap iCheck插件全选与获取value值的解决方法
2016/08/24 Javascript
Javascript 数组去重的方法(四种)详解及实例代码
2016/11/24 Javascript
vue2滚动条加载更多数据实现代码
2017/01/10 Javascript
原生js实现验证码功能
2017/03/16 Javascript
简单的React SSR服务器渲染实现
2018/12/11 Javascript
详解可以用在VS Code中的正则表达式小技巧
2019/05/14 Javascript
深入理解webpack process.env.NODE_ENV配置
2020/02/23 Javascript
vue中watch和computed的区别与使用方法
2020/08/23 Javascript
微信小程序实现签到弹窗动画
2020/09/21 Javascript
微信小程序使用前置摄像头拍照
2020/10/22 Javascript
vue实现按钮切换图片
2021/01/20 Vue.js
Python map和reduce函数用法示例
2015/02/26 Python
深入理解Javascript中的this关键字
2015/03/27 Python
Python简单定义与使用字典dict的方法示例
2017/07/25 Python
Django 后台带有字典的列表数据与页面js交互实例
2020/04/03 Python
Python JSON常用编解码方法代码实例
2020/09/05 Python
自我鉴定模板
2013/10/29 职场文书
四年的大学生生活自我评价
2013/12/09 职场文书
护理学应聘自荐书范文
2014/02/05 职场文书
物流管理专业推荐信
2014/09/06 职场文书
离婚协议书应该怎么写
2014/10/12 职场文书
2015年六一儿童节活动方案
2015/05/05 职场文书
农村老人去世追悼词
2015/06/23 职场文书
农村婚庆主持词
2015/06/29 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技