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 csv操作类代码
Dec 14 PHP
浅析php变量作用域的一些问题
Aug 08 PHP
php中Y2K38的漏洞解决方法实例分析
Sep 22 PHP
php读取目录及子目录下所有文件名的方法
Oct 20 PHP
百度实时推送api接口应用示例
Oct 21 PHP
php session的应用详细介绍
Mar 22 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
Aug 25 PHP
PHP实现搜索时记住状态的方法示例
May 11 PHP
PHP实现的解汉诺塔问题算法示例
Aug 06 PHP
Swoole4.4协程抢占式调度器详解
May 23 PHP
php面试实现反射注入的详细方法
Sep 30 PHP
PHP数据源架构模式之表入口模式实例分析
Jan 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提取中文首字母
2008/04/09 PHP
PHP Ajax中文乱码问题解决方法
2009/02/27 PHP
php更改目录及子目录下所有的文件后缀的代码
2010/09/24 PHP
php自定义的格式化时间示例代码
2013/12/05 PHP
PHP简单判断iPhone、iPad、Android及PC设备的方法
2016/10/11 PHP
Laravel使用模型实现like模糊查询的例子
2019/10/24 PHP
DHTML 中的绝对定位
2006/11/26 Javascript
用AJAX返回HTML片段中的JavaScript脚本
2010/01/04 Javascript
利用javascript实现web页面中指定区域打印
2013/10/30 Javascript
httpclient模拟登陆具体实现(使用js设置cookie)
2013/12/11 Javascript
js获取select选中的option的text示例代码
2013/12/19 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
推荐10 款 SVG 动画的 JavaScript 库
2015/03/24 Javascript
javascript日期格式化方法小结
2015/12/17 Javascript
JS验证 只能输入小数点,数字,负数的实现方法
2016/10/07 Javascript
javascript history对象详解
2017/02/09 Javascript
js和jQuery以及easyui实现对下拉框的指定赋值方法
2018/01/23 jQuery
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
javascript+css实现俄罗斯方块小游戏
2020/06/28 Javascript
JS跨浏览器解析XML应用过程详解
2020/10/16 Javascript
老生常谈Python基础之字符编码
2017/06/14 Python
Python实现的多项式拟合功能示例【基于matplotlib】
2018/05/15 Python
Python多版本开发环境管理工具介绍
2019/07/03 Python
python 实现仿微信聊天时间格式化显示的代码
2020/04/17 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
IE9对HTML5中部分属性不支持的原因分析
2014/10/15 HTML / CSS
HTML5标签大全
2016/11/23 HTML / CSS
汽车销售求职自荐信
2013/10/01 职场文书
心得体会范文
2014/01/04 职场文书
如何写好优秀的创业计划书
2014/01/30 职场文书
房屋所有权证明
2015/06/19 职场文书
初中生物教学反思
2016/02/20 职场文书
竞聘演讲报告:基本写作有哪些?附开头范文
2019/10/16 职场文书
CentOS下安装Jenkins的完整步骤
2022/04/07 Servers
Windows server 2012 R2 安装IIS服务器
2022/04/29 Servers
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers