php 生成数据库字典

来源:互联网 发布:mysql数据库的安装步骤 编辑:程序博客网 时间:2024/05/30 02:24

代码如下。

<?phpheader("content-type:text/html;charset=utf-8");        $dbserver = "127.0.0.1";        $dbusername="root";        $dbpassword="root";        $title = '药品字典';        if(!isset($_GET['db'])){            $database = "test";        }else{            $database = $_GET['db'];        }        $mysql_conn = @mysql_connect("{$dbserver}","{$dbusername}","{$dbpassword}") or die("Mysql connect is error.");                mysql_select_db($database,$mysql_conn);        $result = mysql_query('show tables',$mysql_conn);        mysql_query('SET NAMEs utf8',$mysql_conn);        //取得所有表名        while($row = mysql_fetch_array($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}'";            // $sql .= 'ORDER BY DATA_TYPE desc ';            $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 .='<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'].'</td>';                $html .='<td class="c5">'.($f['EXTRA']=='auto_increment'?'是':' ').'</td>';                $html .='<td class="c6">'.$f['COLUMN_COMMENT'].'</td>';                $html .= '</tr>';            }            $html .='</tbody></table></p>';        }        echo '<html>    <title>'.$title.'</title>    <style>        body,td,th {font-family:"宋体"; font-size:12px;}          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;text-align:center;}          table td{height:20px; font-size:12px; border:1px solid #CCC;background-color:#fff;}          .c1{ width: 120px;}          .c2{ width: 120px;}          .c3{ width: 70px;}          .c4{ width: 80px;text-align:center}          .c5{ width: 80px;text-align:center}          .c6{ width: 270px;}    </style>    <body>';    echo '<h1 style="text-align:center;">'.$title.'</h1>';    echo $html;    echo '</body></html>';        ?>

0 0