php生成mysql的数据字典


Posted in PHP onJuly 07, 2016

把mysql数据库生成数据字典,直接可用便于查看数据库表、字段,做一个数据字典是很有必要的,下面只需要简单更改下配置就可以用了,样式也是挺好的。

<?php 
header('content-type:text/html;charset=utf-8'); 
define('DB_HOST','localhost'); 
define('DB_USER','root'); 
define('DB_PASS','root'); 
define('DB_NAME','test'); 
define('DB_PORT',3306); 
define('DB_CHAR','utf8'); 
define('APPNAME',''); 
$conn=mysql_connect(DB_HOST.':'.DB_PORT,DB_USER,DB_PASS); 
mysql_select_db(DB_NAME); 
mysql_query('set names ' . DB_CHAR); 
$sql="SHOW TABLE STATUS FROM " . DB_NAME; 
$result=mysql_query($sql); 
$array=array(); 
while($rows=mysql_fetch_assoc($result)){ 
$array[]=$rows; 
} 
// table count 
$tab_count = count($array); 
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="zh"> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
<title>'.APPNAME.'--数据字典</title> 
<style type="text/css"> 
  table caption, table th, table td { 
    padding: 0.1em 0.5em 0.1em 0.5em; 
    margin: 0.1em; 
    vertical-align: top; 
  } 
  th { 
    font-weight: bold; 
    color: black; 
    background: #D3DCE3; 
  } 
  table tr.odd th, .odd { 
    background: #E5E5E5; 
  } 
  table tr.even th, .even { 
    background: #f3f3f3; 
  } 
  .db_table{ 
    border-top:1px solid #333; 
  } 
  .title{font-weight:bold;} 
</style> 
</head> 
<body> 
<div style="text-align:center;background:#D3DCE3;font-size:19px;"> 
  <b>'.APPNAME.'--数据字典</b> 
</div> 
<div style="background:#f3f3f3;text-align:center;">(注:共'.$tab_count.'张表,按ctrl+F查找关键字)</div>'."\n"; 
for($i=0;$i<$tab_count;$i++){ 
echo '<ul type="square">'."\n"; 
echo ' <li class="title">'; 
echo ($i+1).'、表名:[' . $array[$i]['Name'] . ']   注释:' . $array[$i]['Comment']; 
echo '</li>'."\n"; 
//查询数据库字段信息 
$tab_name = $array[$i]['Name']; 
$sql_tab='show full fields from `' . $array[$i]['Name'].'`'; 
$tab_result=mysql_query($sql_tab); 
$tab_array=array(); 
  
while($r=mysql_fetch_assoc($tab_result)){ 
  $tab_array[]=$r; 
} 
//show keys 
$keys_result=mysql_query("show keys from `".$array[$i]['Name'].'`',$conn); 
$arr_keys=mysql_fetch_array($keys_result); 
  echo '<li style="list-style: none outside none;"><table border="0" class="db_table" >'; 
  echo '<tr class="head"> 
    <th style="width:110px">字段</th> 
    <th>类型</th> 
    <th>为空</th> 
    <th>额外</th> 
    <th>默认</th> 
    <th style="width:95px">整理</th> 
    <th>备注</th></tr>'; 
  for($j=0;$j<count($tab_array);$j++){ 
    $key_name=$arr_keys['Key_name']; 
    if($key_name="PRIMARY"){ 
      $key_name='主键('.$key_name.')'; 
    } 
    $key_field=$arr_keys['Column_name']; 
    if ( $tab_array[$j]['Field']==$key_field){ 
      $key_value="PK"; 
    }else{ 
      $key_value=""; 
    } 
    echo '    <tr class="'.($j%2==0?"odd":"even").'">'."\n"; 
    echo '     <td>' . $tab_array[$j]['Field'] . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Type'] . '</td>'."\n"; 
    echo '     <td>' . ($key_value!=''?$key_value:$tab_array[$j]['Null']) . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Extra'] . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Default'] . '</td>'."\n"; 
    echo '     <td>' . $tab_array[$j]['Collation'] . '</td>'."\n"; 
    echo '     <td>' . ($key_value!=''?$key_name:$tab_array[$j]['Comment']) . '</td>'."\n"; 
    echo '    </tr>'."\n"; 
  } 
  echo ' </table></li>'."\n"; 
  echo '</ul>'."\n"; 
  
} 
echo '</body>'."\n"; 
echo '</html>'."\n";

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
用PHP实现多级树型菜单
Oct 09 PHP
php 动态添加记录
Mar 10 PHP
让PHP更快的提供文件下载的代码
Jun 13 PHP
PHP json格式和js json格式 js跨域调用实现代码
Sep 08 PHP
PHP递归算法的详细示例分析
Feb 19 PHP
php使用curl存储cookie的示例
Mar 31 PHP
CI框架给视图添加动态数据
Dec 01 PHP
php递归实现无限分类的方法
Jul 28 PHP
ZF框架实现发送邮件的方法
Dec 03 PHP
thinkphp3.2.0 setInc方法 源码全面解析
Jan 29 PHP
Mac系统下安装PHP Xdebug
Mar 30 PHP
php ajax数据传输和响应方法
Aug 21 PHP
php自定义函数实现JS的escape的方法示例
Jul 07 #PHP
PHP使用mysql与mysqli连接Mysql数据库用法示例
Jul 07 #PHP
PHP使用自定义方法实现数组合并示例
Jul 07 #PHP
PHP记录和读取JSON格式日志文件
Jul 07 #PHP
thinkPHP+PHPExcel实现读取文件日期的方法(含时分秒)
Jul 07 #PHP
PHP识别二维码的方法(php-zbarcode安装与使用)
Jul 07 #PHP
PHP使用PHPExcel删除Excel单元格指定列的方法
Jul 06 #PHP
You might like
从零开始的异世界生活:第二季延期后,B站上架了第二部剧场版
2020/05/06 日漫
PHP和Mysqlweb应用开发核心技术 第1部分 Php基础-1 开始了解php
2011/07/03 PHP
php将图片文件转换成二进制输出的方法
2015/06/10 PHP
PHP基于GD2函数库实现验证码功能示例
2019/01/27 PHP
PHP7创建销毁session的实例方法
2020/02/03 PHP
javascript 火狐(firefox)不显示本地图片问题解决
2008/07/05 Javascript
js操作二级联动实现代码
2010/07/27 Javascript
基于JQuery制作的产品广告效果
2010/12/08 Javascript
jquery EasyUI的formatter格式化函数代码
2011/01/12 Javascript
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
浅谈javascript中this在事件中的应用
2015/02/15 Javascript
AngularJS基础 ng-list 指令详解及示例代码
2016/08/02 Javascript
详细分析jsonp的原理和实现方式
2017/11/20 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
vue实现element-ui对话框可拖拽功能
2018/08/17 Javascript
微信小程序实现比较功能的方法汇总(五种方法)
2020/03/07 Javascript
Element Popover 弹出框的使用示例
2020/07/26 Javascript
NodeJS模块Buffer原理及使用方法解析
2020/11/11 NodeJs
[00:59]PWL开团时刻DAY7——我在赶
2020/11/06 DOTA
Python 用户登录验证的小例子
2013/03/06 Python
python抓取网页中图片并保存到本地
2015/12/01 Python
python自动翻译实现方法
2016/05/28 Python
使用Python脚本实现批量网站存活检测遇到问题及解决方法
2016/10/11 Python
python中的迭代和可迭代对象代码示例
2017/12/27 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
Python常用模块之requests模块用法分析
2019/05/15 Python
python五子棋游戏的设计与实现
2019/06/18 Python
Python实现生成密码字典的方法示例
2019/09/02 Python
基于Python批量生成指定尺寸缩略图代码实例
2019/11/20 Python
python利用platform模块获取系统信息
2020/10/09 Python
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2020/12/27 Python
Pytorch自定义Dataset和DataLoader去除不存在和空数据的操作
2021/03/03 Python
移动端html5判断是否滚动到底部并且下拉加载
2019/11/19 HTML / CSS
商务日语毕业生自荐信
2013/11/23 职场文书
环保公益策划方案
2014/08/15 职场文书
教师学习心得体会范文
2016/01/21 职场文书