<?php
/**
* 生成mysql數(shù)據(jù)字典
*/
header("Content-type:text/html;charset=utf-8");
// 配置數(shù)據(jù)庫(kù)
$database = array();
$database['DB_HOST'] = 'localhost';
$database['DB_NAME'] = '***';
$database['DB_USER'] = '***';
$database['DB_PWD'] = '************';
$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($conn,"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];
}
}
// 循環(huán)取得所有表的備注及表中列消息
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 = '';
// 循環(huán)所有表
//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>數(shù)據(jù)類型</th><th>默認(rèn)值</th><th>允許非空</th><th>自動(dòng)遞增</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']}數(shù)據(jù)字典.doc" );
/* 生成excel*/
//header ( "Content-type:application/vnd.ms-excel" );
//header ( "Content-Disposition:attachment;filename={$database['DB_NAME']}數(shù)據(jù)字典.xls" );
// 輸出
echo '<html>
<meta charset="utf-8">
<title>自動(dòng)生成數(shù)據(jù)字典</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'].'數(shù)據(jù)字典</h1>';
echo '<p style="text-align:center;margin:20px auto;">生成時(shí)間:' . date('Y-m-d H:i:s') . '</p>';
echo $html;
echo '<p style="text-align:left;margin:20px auto;">總共:' . count($tables) . '個(gè)數(shù)據(jù)表</p>';
echo '</body></html>';
?>
php 生成數(shù)據(jù)字典
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
- 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人进每,你說我怎么就攤上這事汹粤。” “怎么了田晚?”我有些...
- 文/不壞的土叔 我叫張陵嘱兼,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我贤徒,道長(zhǎng)芹壕,這世上最難降的妖魔是什么? 我笑而不...
- 正文 為了忘掉前任接奈,我火速辦了婚禮踢涌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘序宦。我一直安慰自己睁壁,他們只是感情好,可當(dāng)我...
- 文/花漫 我一把揭開白布互捌。 她就那樣靜靜地躺著潘明,像睡著了一般。 火紅的嫁衣襯著肌膚如雪秕噪。 梳的紋絲不亂的頭發(fā)上钳降,一...
- 文/蒼蘭香墨 我猛地睜開眼碉克,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了并齐?” 一聲冷哼從身側(cè)響起漏麦,我...
- 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎况褪,沒想到半個(gè)月后撕贞,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
- 正文 獨(dú)居荒郊野嶺守林人離奇死亡测垛,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
- 正文 我和宋清朗相戀三年捏膨,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
- 正文 年R本政府宣布,位于F島的核電站域蜗,受9級(jí)特大地震影響巨双,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜霉祸,卻給世界環(huán)境...
- 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望脉执。 院中可真熱鬧,春花似錦半夷、人聲如沸。這莊子的主人今日做“春日...
- 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)宾舅。三九已至,卻和暖如春彩倚,著一層夾襖步出監(jiān)牢的瞬間筹我,已是汗流浹背。 一陣腳步聲響...
- 正文 我出身青樓哥谷,卻偏偏與公主長(zhǎng)得像岸夯,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子们妥,可洞房花燭夜當(dāng)晚...
推薦閱讀更多精彩內(nèi)容
- <?php/** 生成mysql數(shù)據(jù)字典*/header("Content-type: text/html; ch...
- 本文引用《利用Python進(jìn)行數(shù)據(jù)分析·第2版》 元組tuple 元組是一個(gè)固定長(zhǎng)度而且不可以改變的序列對(duì)象 定義...
- 原理 項(xiàng)目的數(shù)據(jù)庫(kù)字典表是一個(gè)很重要的文檔藐唠。通過此文檔可以清晰的了解數(shù)據(jù)表結(jié)構(gòu)及開發(fā)者的設(shè)計(jì)意圖。通常為了方便我都...
- 很多時(shí)候鹉究,在一個(gè)項(xiàng)目的開始或者結(jié)束時(shí)宇立,整理項(xiàng)目開發(fā)文檔、用戶手冊(cè)妈嘹、交付文檔時(shí)都會(huì)在文檔中包含數(shù)據(jù)庫(kù)的說明润脸,主要體現(xiàn)...
- 本文由徐雪兒翻譯 (譯者按:作者Dan Cohen是美國(guó)公共數(shù)字圖書館的執(zhí)行理事拗胜。十年前埂软,谷歌宣布將掃描全世界的書...