有时候我们拿到别人的数据库,却没有数据字典,这个php小程序帮你轻松解决。
代码是网上找到的,当然,这段代码也仅仅是生成了数据字典,视图,存储过程等等是木有的哦。
<?php /**
* 生成mysql数据字典
*/
//配置数据库
$dbserver = "127.0.0.1";
$dbusername = "root";
$dbpassword = "";
$database = "";
//其他配置
$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);
$html = "";
//循环所有表
foreach ($tables AS $k=>$v) {
//$html .= "<p></p><h2>". $v["TABLE_COMMENT"] . " </h2>";
$html .= "| 字段名 | 数据类型 | 默认值 | 允许非空 | 自动递增 | 备注 |
|---|---|---|---|---|---|
| " . $f["COLUMN_NAME"] . " | "; $html .= "" . $f["COLUMN_TYPE"] . " | "; $html .= "" . $f["COLUMN_DEFAULT"] . " | "; $html .= "" . $f["IS_NULLABLE"] . " | "; $html .= "" . ($f["EXTRA"]=="auto_increment"?"是":" ") . " | "; $html .= "" . $f["COLUMN_COMMENT"] . " | "; $html .= "
"; } //输出 echo "
".$title."
"; echo $html; echo ""; ?>











