<?php
/*** 生成mysql数据字典*/
header("Content-type:text/html;charset=utf-8");
// 配置数据库
$database = array();
$database['DB_HOST'] = '119.23.140.154';
$database['DB_NAME'] = 'haiyi';
$database['DB_USER'] = 'root';
$database['DB_PWD'] = 'zpYxW5qxaSeL5aTk';
$conn = mysqli_connect("{$database['DB_HOST']}", "{$database['DB_USER']}", "{$database['DB_PWD']}", $database['DB_NAME']);
if ($conn->connect_error) {die("连接失败: " . $conn->connect_error);
}
mysqli_query("set names utf8");
$result = $conn->query('show tables', $mysql_conn);
if ($result->num_rows > 0) {// 取得所有表名while ($row = $result->fetch_array()) {$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['DB_NAME']}'";$table_result = $conn->query($sql);while ($t = $table_result->fetch_array()){$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['DB_NAME']}'";$fields = array();$field_result = $conn->query($sql);while ($t = $field_result->fetch_array()){$fields[] = $t;}$tables[$k]['COLUMN'] = $fields;
}
$conn->close();
$html = '';
// 循环所有表
//print_r($tables);
foreach($tables as $k => $v)
{$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 .= '<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'] == 'YES' ? '是':'否') . '</td>';$html .= '<td class="c5">' . ($f['EXTRA'] == 'auto_increment'?'是':' ') . '</td>';$html .= '<td class="c6">' . $f['COLUMN_COMMENT'] . '</td>';$html .= '</tr>';}$html .= '</tbody></table></p>';
}
/* 生成word */
//header ( "Content-type:application/vnd.ms-word" );
//header ( "Content-Disposition:attachment;filename={$database['DB_NAME']}数据字典.doc" );
/* 生成excel*/
//header ( "Content-type:application/vnd.ms-excel" );
//header ( "Content-Disposition:attachment;filename={$database['DB_NAME']}数据字典.xls" );
// 输出
echo '<html><meta charset="utf-8"><title>自动生成数据字典</title><style>body,td,th {font-family:"宋体"; font-size:12px;}table,h1,p{width:960px;margin:0px auto;}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;padding-left:5px;}table td{height:20px; font-size:12px; border:1px solid #CCC;background-color:#fff;padding-left:5px;}.c1{ width: 150px;}.c2{ width: 150px;}.c3{ width: 80px;}.c4{ width: 100px;}.c5{ width: 100px;}.c6{ width: 300px;}</style><body>';
echo '<h1 style="text-align:center;">'.$database['DB_NAME'].'数据字典</h1>';
echo '<p style="text-align:center;margin:20px auto;">生成时间:' . date('Y-m-d H:i:s') . '</p>';
echo $html;
echo '<p style="text-align:left;margin:20px auto;">总共:' . count($tables) . '个数据表</p>';
echo '</body></html>';
?>

转载于:https://www.cnblogs.com/rubekid/p/7215466.html

PHP连数据库生成数据字典相关推荐

  1. 用mysql建立商城数据字典_把mysql数据库生成数据字典,直接可用

    便于查看数据库表.字段,做一个数据字典是很有必要的,下面只需要简单更改下配置就可以用了,样式也是挺好的. header('content-type:text/html;charset=utf-8'); ...

  2. PowerDesigner根据数据库生成数据字典

    一.把数据库结构导入到PowerDesigner 1.选择File->Reverse Engineer->DataBase 2.选择数据库 3.配置数据源 4.选择要导入的表 5.导入后生 ...

  3. power designer 设计数据库生成到oracle数据库

    一.概念模型设计 1. 创建工程,创建概念设计模型,在快捷菜单栏调出 palette 找到表格工具,在主界面中创建表格. 2. 创建出的表格,双击进入设计模式 -------------------- ...

  4. php实现小说字典功能_PHP实现生成数据字典功能示例

    本文实例讲述了PHP实现生成数据字典功能.分享给大家供大家参考,具体如下: 最近时间紧迫,没有时间发博客,趁现在有点时间向大家分享一个知识点.在咱们做开发的时候 ,也许经常会遇到对数据库分析,做一个数 ...

  5. 【数据字典】第三篇 利用PowDesigner自动生成数据字典

    一.从mysql数据库生成pdm图 1.配置数据库连接(要使用此方法jdk必须为32位,否则test将会失败) 1.1配置数据源:database-->Configure Data Connec ...

  6. PowerDesigner 生成数据字典

    数据字典是指对数据的数据项.数据结构.数据流.数据存储.处理逻辑.外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明,使用数据字典为简单的建模项目.简而言之,数据字典是描述数据的 ...

  7. 如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM)(转)...

    如何用Powerdesigner的PDM(物理数据模型)生成数据库及逆向工程(将现有的数据库生成PDM) pdm做好后,最终是要将其转化为数据库实体的. 1.确认当前Powerdesigner设置的d ...

  8. idea persistence生成_真厉害!竟然可以这样用IDEA通过数据库生成lombok版的POJO...

    前言 最近写需求时需要新建许多新表,设计完表结构还要一一写成对应的 POJO,很麻烦,就 Google 了一下.网上相关资料不多,借鉴了一篇博客,并在其基础上进行了完善. 前置步骤 使用 IDEA 自 ...

  9. 数据库生成T4模版在代码生成中的应用心得

    在本篇文章中,我们主要介绍数据库生成的内容,自我感觉有个不错的提议和大家分享下 转眼之间,我用T4模版已经三年多的时间.三年来,经过几个项目的磨合,在应用上偶有心得,在这里把一些问题一一罗列出来. 2 ...

  10. powerdesigner反向MySQL5.1数据库 生成ER图

    powerdesigner反向MySQL5.1数据库 生成ER图 转载于:https://www.cnblogs.com/passer1991/archive/2013/03/17/2964680.h ...

最新文章

  1. 客快物流大数据项目(二十五):初始化业务数据
  2. oracle 内存分配和调优 总结
  3. L3-002 特殊堆栈
  4. 使用Categorical_endcoder包对标称变量进行个性化编码
  5. Java实现快速排序 Quick Sort
  6. java语言主要因为具备了,Java语言的魅力
  7. 最短路径Dijkstra讲解,工具包使用 python
  8. 防止私自接交换机_防止私接家用路由器干扰DHCP功能,禁止用户手动设置IP地址-肖哥...
  9. 【helpdesk】启明星helpdesk7.0版本里,实现邮件提交功能介绍和原理
  10. Madagascar编程的Makefile文件配置
  11. spark reduce与reduceByKey的区别
  12. PcShare远程控制(20070722免费版本)发布
  13. Ajax回调函数中return不生效问题
  14. 国内硕士申请加拿大计算机博士难度,【经验分享】如何申请加拿大硕士研究生或者博士?...
  15. 秦汉考场科目三路线图_易通驾校百科:秦汉科目三考场考试攻略,附考场路线图...
  16. 微信存储空间占用问题
  17. 学习超市管理系统的搭建与实现
  18. 京淘项目实战开发-01
  19. LeetCode刷题13-简单-罗马数字转整数
  20. 【HTML5】HTML语法和基本常用标签(字符集)

热门文章

  1. mysql 复制协议_一种基于ISER协议的MySQL数据库复制方法与流程
  2. 聊聊 Material Design 里,阴影的那些事儿!
  3. 微信小程序app配置指南
  4. wordpress向一个页面POST数据,出现404页面访问不了
  5. Unity调用Android类方法
  6. 分布式之Zookeeper使用
  7. java复习【笔试可能常见】
  8. Spring+Mybatis+SpringMVC后台与前台分页展示实例(附工程)(转)
  9. 实现更简单的异步操作
  10. 【目标检测】目标检测中的多尺度检测(Multi-Scale),FPN,RPN