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 相关文章推荐
新闻分类录入、显示系统
Oct 09 PHP
PHP 文章中的远程图片采集到本地的代码
Jul 30 PHP
php单例模式实现(对象只被创建一次)
Dec 05 PHP
php获取服务器信息的实现代码
Feb 04 PHP
php向js函数传参的几种方法
Aug 10 PHP
php中通过DirectoryIterator删除整个目录的方法
Mar 13 PHP
PHP程序员不应该忽略的3点
Oct 09 PHP
Yii2针对指定url的生成及图片等的引入方法小结
Jul 18 PHP
中高级PHP程序员应该掌握哪些技术?
Sep 23 PHP
php框架CodeIgniter使用redis的方法分析
Apr 13 PHP
php intval函数用法总结
Apr 14 PHP
ThinkPHP 5 AJAX跨域请求头设置实现过程解析
Oct 28 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 var_dump遍历对象属性的函数与应用代码
2010/06/04 PHP
PHP Session机制简介及用法
2014/08/19 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
php使用crypt()函数进行加密
2017/06/08 PHP
漂亮的thinkphp 跳转页封装示例
2019/10/16 PHP
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
推荐40个简单的 jQuery 导航插件和教程(下篇)
2012/09/14 Javascript
js复制到剪切板的实例方法
2013/06/28 Javascript
javascript禁用键盘功能键让右击及其他键无效
2013/10/09 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
理解Javascript的动态语言特性
2015/06/17 Javascript
Nodejs多站点切换Htpps协议详解及简单实例
2017/02/23 NodeJs
微信小程序保持session会话的方法
2020/03/20 Javascript
vue实现点击按钮切换背景颜色的示例代码
2020/06/23 Javascript
python判断字符串是否包含子字符串的方法
2015/03/24 Python
Python连接DB2数据库
2016/08/27 Python
python3实现ftp服务功能(客户端)
2017/03/24 Python
wxpython+pymysql实现用户登陆功能
2019/11/19 Python
Mac 使用python3的matplot画图不显示的解决
2019/11/23 Python
解决pyshp UnicodeDecodeError的问题
2019/12/06 Python
pytorch 图像预处理之减去均值,除以方差的实例
2020/01/02 Python
Python生成器常见问题及解决方案
2020/03/21 Python
python 爬取B站原视频的实例代码
2020/09/09 Python
python matplotlib库的基本使用
2020/09/23 Python
Python classmethod装饰器原理及用法解析
2020/10/17 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
python 模拟登陆163邮箱
2020/12/15 Python
世界顶级足球门票网站:Live Football Tickets
2017/10/14 全球购物
社区母亲节活动记录
2014/03/06 职场文书
市场营销专业毕业生求职信
2014/07/21 职场文书
会议主持人开场白台词
2015/05/28 职场文书
增值税发票丢失证明
2015/06/19 职场文书
个人催款函范文
2015/06/23 职场文书
母亲节主题班会
2015/08/14 职场文书
一篇文章带你了解Python和Java的正则表达式对比
2021/09/15 Python
SQL Server中的游标介绍
2022/05/20 SQL Server