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 相关文章推荐
分页显示Oracle数据库记录的类之二
Oct 09 PHP
MySQL修改密码方法总结
Mar 25 PHP
php Notice: Undefined index 错误提示解决方法
Aug 29 PHP
使用php get_headers 判断URL是否有效的解决办法
Apr 27 PHP
php自定文件保存session的方法
Dec 10 PHP
PHP输出日历表代码实例
Mar 27 PHP
基于jQueryUI和Corethink实现百度的搜索提示功能
Nov 09 PHP
PHP实现的简单排列组合算法应用示例
Jun 20 PHP
Laravel-添加后台模板AdminLte的实现方法
Oct 08 PHP
详解laravel passport OAuth2.0的4种模式
Nov 04 PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 PHP
php连接mysql之mysql_connect()与mysqli_connect()的区别
Jul 19 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
与文件上传有关的php配置参数总结
2013/06/14 PHP
PHP中返回引用类型的方法
2015/04/03 PHP
PHP实现冒泡排序的简单实例
2016/05/26 PHP
PHP简单日历实现方法
2016/07/20 PHP
php学习笔记之mb_strstr的基本使用
2018/02/03 PHP
checkbox 多选框 联动实现代码
2008/10/22 Javascript
js获取当前时间显示在页面上并每秒刷新
2014/12/24 Javascript
jquery实现表格本地排序的方法
2015/03/11 Javascript
JavaScript通过事件代理高亮显示表格行的方法
2015/05/27 Javascript
JavaScript 七大技巧(一)
2015/12/13 Javascript
JS上传组件FileUpload自定义模板的使用方法
2016/05/10 Javascript
Node.js环境下JavaScript实现单链表与双链表结构
2016/06/12 Javascript
vue.js将unix时间戳转换为自定义时间格式
2017/01/03 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
bootstrap datetimepicker日期插件超详细使用方法介绍
2017/02/23 Javascript
vue.js的手脚架vue-cli项目搭建的步骤
2017/08/30 Javascript
微信小程序动画(Animation)的实现及执行步骤
2018/10/28 Javascript
nodejs中使用archive压缩文件的实现代码
2019/11/26 NodeJs
如何在vue中使用HTML 5 拖放API
2021/01/14 Vue.js
python 禁止函数修改列表的实现方法
2017/08/03 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
Pycharm中import torch报错的快速解决方法
2020/03/05 Python
Python字符串三种格式化输出
2020/09/17 Python
python爬虫泛滥的解决方法详解
2020/11/25 Python
Python tkinter之ComboBox(下拉框)的使用简介
2021/02/05 Python
基于CSS3实现立方体自转效果
2016/03/01 HTML / CSS
Farfetch美国:奢侈品牌时尚购物平台
2019/05/02 全球购物
师范应届生语文教师求职信
2013/10/29 职场文书
英文自荐信常用句子
2014/03/26 职场文书
北京申奥口号
2014/06/19 职场文书
就业协议书盖章的注意事项
2014/09/28 职场文书
社保代办委托书怎么写
2014/10/06 职场文书
六一儿童节致辞稿(3篇)
2019/07/11 职场文书
Django Paginator分页器的使用示例
2021/06/23 Python
一次线上mongo慢查询问题排查处理记录
2022/03/18 MongoDB
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA