PHP 生成数据字典的一个小功能

/**
  * 生成mysql数据字典
  */
header( "Content-type: text/html; charset=utf-8" );
//配置数据库
$dbserver   = "127.0.0.1" ;
$dbusername = "root" ;
$dbpassword = "" ;
$database   = "" ;
 
//其他配置
$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 );
 
$no_show_table = array ( 'czzj_area' , 'czzj_attach_album' , 'czzj_group_album' , 'czzj_group_album_topic' , 'czzj_group_topic_add' , 'czzj_group_topic_collect' , 'czzj_photo' , 'czzj_photo_album' , 'czzj_photo_comment' , 'czzj_photo_options' , 'czzj_redeem_cate' , 'czzj_redeem_goods' , 'czzj_redeem_options' , 'czzj_redeem_user' , 'czzj_task' , 'czzj_task_user' , 'czzj_user_follow' , 'czzj_user_invites' , 'czzj_slide' ); //无需显示表
$no_show_field = array (
     'czzj_group' => array ( 'cateid3' ),
     'czzj_tag'   => array ( 'count_bang' , 'count_photo' ),
     'czzj_event' => array ( 'count_userwish' ),
);   //无需的字段
 
//取得所有的表名
while ( $row = mysql_fetch_array( $table_result )){
     if (!in_array( $row [0], $no_show_table )){
         $tables [][ 'TABLE_NAME' ] = $row [0];
     }
}
//替换所以表的表前缀
if ( $_GET [ 'prefix' ]){
     $prefix = 'nit' ;
     foreach ( $tables as $key => $val ){
         $tableName = $val [ 'TABLE_NAME' ];
         $string = explode ( '_' , $tableName );
         if ( $string [0] != $prefix ){ 
             $string [0] = $prefix
             $newTableName = implode( '_' , $string ); 
             mysql_query( 'rename table ' . $tableName . ' TO ' . $newTableName ); 
         }
     }
     echo "替换成功!" ; exit ();
}
 
//循环取得所有表的备注及表中列消息
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 .=

' . ( $k + 1) . '、' . $v [ 'TABLE_COMMENT' ] . '  (' . $v [ 'TABLE_NAME' ]. ')

' . "\n" ;
     $html .= '  '."\n";
     $html .= '     
'."\n";
     $html .= '         
'."\n";
     $html .= '             
'."\n";
     $html .= '             
'."\n";
     $html .= '             
'."\n";
     $html .= '             
'."\n";
     $html .= '             
'."\n";
     $html .= '             
'."\n";
     $html .= '         
'."\n";
 
     foreach ( $v [ 'COLUMN' ] as $f ) {
         if (! is_array ( $no_show_field [ $v [ 'TABLE_NAME' ]])){
             $no_show_field [ $v [ 'TABLE_NAME' ]] = array ();
         }
         if (!in_array( $f [ 'COLUMN_NAME' ], $no_show_field [ $v [ 'TABLE_NAME' ]])){
             $html .= '         
'."\n";
             $html .= '             
'."\n";
             $html .= '             
'."\n";
             $html .= '             
'."\n";
             $html .= '             
'."\n";
             $html .= '             
'."\n";
             $html .= '             
'."\n";
             $html .= '         
'."\n";
         }
     }
     $html .= '     
'."\n";
     $html .=
字段名 数据类型 默认值 允许非空 自动递增 备注
' . $f [ 'COLUMN_NAME' ] . ' ' . $f [ 'COLUMN_TYPE' ] . ' ' . $f [ 'COLUMN_DEFAULT' ] . ' ' . $f [ 'IS_NULLABLE' ] . ' ' . ( $f [ 'EXTRA' ]== 'auto_increment' ? '是' : ' ' ) . ' ' . $f [ 'COLUMN_COMMENT' ] . '
' . "\n" ;
}
?>
"utf-8" >
南昌工程学院志愿服务系统数据库数据字典
class = "warp" >
    

"text-align:center;" >南昌工程学院志愿服务系统数据库数据字典

echo $html ; ?>

你可能感兴趣的:(php)