<?php
/**
* mysql数据字典在线生成
* @author change
*/ //配置数据库
$dbserver = "192.168.1.218:3306";
$dbusername = "admin";
$dbpassword = "111";
$database = 'test'; //其他配置
$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); ?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="Author" content="changyuan">
<meta name="Keywords" content="db">
<meta name="Description" content="db">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
<title><?=$title;?></title>
<link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<style type="text/css">
.box{
margin: 0 auto;
text-align: center;
width: 80%;
}
caption,th,td{
text-align: center;
}
caption {
font-weight: bold;
font-size: 20px;
}
</style>
</head>
<body>
<div class="box">
<h2><?=$title;?></h2> <?php if (!empty($tables)): ?>
<?php foreach ($tables as $k => $v): ?>
<h2><?=$v['TABLE_COMMENT'];?></h2>
<table class="table table-hover table-bordered" width="80%">
<caption><?=$v['TABLE_NAME'];?></caption>
<thead>
<tr class="success">
<th>字段名</th>
<th>数据类型</th>
<th>默认值</th>
<th>允许非空</th>
<th>自动递增</th>
<th>注释</th>
</tr>
</thead>
<tbody>
<?php foreach ($v['COLUMN'] as $f): ?>
<tr>
<td><?=$f['COLUMN_NAME'];?></td>
<td><?=$f['COLUMN_TYPE'];?></td>
<td><?=$f['COLUMN_DEFAULT'];?></td>
<td><?=$f['IS_NULLABLE'];?></td>
<td><?=$f['EXTRA'] == 'auto_increment' ? "√" : "";?></td>
<td><?=$f['COLUMN_COMMENT'];?></td>
</tr>
<?php endforeach?>
</tbody>
</table>
<?php endforeach?>
<?php endif?>
</div>
</body>
</html>

PHP导出数据库数据字典脚本的更多相关文章

  1. mysql快速导出数据库ER图和数据字典(附navicat11安装教程及资源)

    ♣ mysql使用navicat11快速导出数据库ER图 ♣ mysql使用navicat11快速导出数据库数据字典 ♣ navicat11 for mysql (这里是mysql5.7.12)专业版 ...

  2. Navicat Premium快速导出数据库ER图和数据字典

    2.快速导出数据库数据字典: SQL Server 数据库,生成数据字典 use YourDatabase --指定要生成数据字典的数据库 go SELECT 表名= then d.name else ...

  3. DAC--使用DAC来导出数据库脚本

    //============================================== //功能介绍:使用DAC来导出数据库脚本 //注意事项: //1.本程序涉及到的DLL有: //  - ...

  4. 使用PostgreSQL 脚本导出数据库的DDL

    使用PostgreSQL 脚本导出数据库的DDL 本文主要介绍如何使用基于 PostgreSQL pgdump编写的自定义脚本来导出数据库的DDL. 一.文件说明: 1.pgdump基础语句.sql: ...

  5. MySQL导入sql脚本 导出数据库

    导出数据库 不能停止服务 cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) mysqldump -u用户名 -p 数据库名 > 导出的文件名 ...

  6. 【原创】SQLServer将数据导出为SQL脚本的方法

    最近很多同学问到一个问题,如何将MSSQLServer的数据库以及里面的数据导出为SQL脚本,主要问的是MSSQLServer2000和2005,因为2008的管理器已经有了这个功能,2000和200 ...

  7. DB2导入导出数据库数据

    导出数据库中数据 在db2cmd命令下生成建库脚本(-z指定模式名) db2look -d BBS -z db2admin -u db2admin -e -o bbs.sql 在db2cmd命令下导出 ...

  8. 使用PLSQL导入导出数据库

    Oracle如何实现创建数据库.备份数据库及数据导出导入的一条龙操作 Oracle中对数据对象和数据的管理,无疑都是使用PL/SQL Developer来进行管理,该工具也提供给我们很多方便.快捷的操 ...

  9. mysql导出数据库几种方法

    方法一 cmd 到mysql bin目录下用 如下命令 mysqldump --opt -h192.168.0.156 -uusername -ppassword --skip-lock-tables ...

随机推荐

  1. scala学习笔记(8): 列表的map,flatMap,zip和reduce

    map,flatMap,zip和reduce函数可以让我们更容易处理列表函数. 1 map函数map将一个函数应用于列表的每一个元素并且将其作为一个新的列表返回.我们可以这样对列表的元素进行平方: s ...

  2. 朴素贝叶斯(Naive Bayes)

    1.朴素贝叶斯模型 朴素贝叶斯分类器是一种有监督算法,并且是一种生成模型,简单易于实现,且效果也不错,需要注意,朴素贝叶斯是一种线性模型,他是是基于贝叶斯定理的算法,贝叶斯定理的形式如下: \[P(Y ...

  3. LA 3882 And Then There Was One

    解题思路:分析要好久,懒得分析了,贴了某大牛的的分析,代码就是我自己写的. N个数排成一圈,第一次删除m,以后每k个数删除一次,求最后一被删除的数. 如果这题用链表或者数组模拟整个过程的话,时间复杂度 ...

  4. 查询mysql数据库表的信息(表大小、数据大小、索引大小)

    select * from information_schema.TABLES where information_schema.TABLES.TABLE_SCHEMA='databasename' ...

  5. background-size background-positon合并的写法

    background:url('../../image/banner/banner1.jpg') #fff no-repeat 5px center/50px 50px; "/"前 ...

  6. is_file和file_exists效率比较

    目前在弄文件缓存的时候用到了判定文件存在与否,is_file()还是file_exists()呢?is_file和file_exists两者效率比较起来,谁的运行速度更快呢?还是做个测试吧: 1 2 ...

  7. Jsonp和java操作例子

    介绍JSONP之前,先简单的介绍一些JSON.JSON是JavaScript Object Notation的缩写,是一种轻量的.可读的基于文本的数据交换开放标准.源于JavsScript编程语言中对 ...

  8. WPF的控件Binding的ElementName/RelativeSource具体用法

    <TextBlock Name="_txtSickBedNo" FontStyle="Normal" Foreground="Black&quo ...

  9. oracle 组函数

    一.组函数嵌套 ORACLE中规定,组函数嵌套只能嵌两层.其实多层嵌套并没有实际的用途,因此ORACLE没有提供组函数的多层嵌套.但是,单行函数是可以多层嵌套的. 二. 1.Oracle包含以下组函数 ...

  10. ylb:表的结构的修改和基本约束

    ylbtech-SQL Server:SQL Server-表的结构的修改和基本约束 SQL Server 表的结构的修改和基本约束. 1,表的结构的修改和基本约束返回顶部 use master go ...