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 和 XML: 使用expat函数(一)
Oct 09 PHP
随时给自己贴的图片加文字的php水印
Mar 16 PHP
php curl常见错误:SSL错误、bool(false)
Dec 28 PHP
浅析PHP 按位与或 (^ 、&amp;)
Jun 21 PHP
ThinkPHP使用smarty模板引擎的方法
Jul 01 PHP
初识php MVC
Sep 10 PHP
必须收藏的php实用代码片段
Feb 02 PHP
PHP错误处理函数
Apr 03 PHP
PHP模板引擎Smarty内建函数foreach,foreachelse用法分析
Apr 11 PHP
详解PHP 二维数组排序保持键名不变
Mar 06 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 PHP
Laravel6.18.19如何优雅的切换发件账户
Jun 14 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使用Image Magick将PDF文件转换为JPG文件的方法
2015/04/01 PHP
详解PHP中的状态模式编程
2015/08/11 PHP
PHP文件操作之获取目录下文件与计算相对路径的方法
2016/01/08 PHP
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
javascript解析json实例详解
2014/11/05 Javascript
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JavaScript随机生成信用卡卡号的方法
2015/04/07 Javascript
ECMAScript6块级作用域及新变量声明(let)
2015/06/12 Javascript
JavaScript对象属性检查、增加、删除、访问操作实例
2015/07/08 Javascript
js焦点文字滚动效果代码分享
2015/08/25 Javascript
JS+CSS实现仿msn风格选项卡效果代码
2015/10/22 Javascript
JavaScript事件代理和委托详解
2016/04/08 Javascript
JS检测页面中哪个HTML标签触发点击事件的方法
2016/06/17 Javascript
HTML5 实现的一个俄罗斯方块实例代码
2016/09/19 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
vue中使用element-ui进行表单验证的实例代码
2018/06/22 Javascript
Vue实现导航栏点击当前标签变色功能
2020/08/19 Javascript
详解微信小程序自定义组件的实现及数据交互
2019/07/22 Javascript
使用VScode 插件debugger for chrome 调试react源码的方法
2019/09/13 Javascript
浅谈Vue组件单元测试究竟测试什么
2020/02/05 Javascript
javascript运行机制之执行顺序理解
2020/08/03 Javascript
vue项目打包后请求地址错误/打包后跨域操作
2020/11/04 Javascript
[07:31]DOTA2卡尔工作室 英雄介绍主宰篇
2013/06/25 DOTA
python基于socket实现的UDP及TCP通讯功能示例
2019/11/01 Python
python中pow函数用法及功能说明
2020/12/04 Python
Python3使用tesserocr识别字母数字验证码的实现
2021/01/29 Python
HTML5进度条特效
2014/12/18 HTML / CSS
美国知名平价彩妆品牌:e.l.f. Cosmetics
2017/11/20 全球购物
Bally巴利英国官网:经典瑞士鞋履、手袋及配饰奢侈品牌
2018/05/07 全球购物
const char*, char const*, char*const的区别是什么
2014/07/09 面试题
让世界充满爱演讲稿
2014/05/24 职场文书
信息员培训方案
2014/06/12 职场文书
感谢信范文大全
2015/01/23 职场文书
2015年电教工作总结
2015/05/26 职场文书
Mysql中调试存储过程最简单的方法
2021/06/30 MySQL
服务器nginx权限被拒绝解决案例
2022/09/23 Servers