有时候我们拿到别人的数据库,却没有数据字典,这个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 .= "". $v["TABLE_COMMENT"] . "
"; $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 .= "