[PHP] 导出mysql数据库结构并生成列表的小脚本,供VIM使用

很多时候,大家都是要 “接过别人手中的枪” ,在已有的代码上进行开发、修改……所以,很多时候,总是对数据的存储结构不是很熟悉,影响工作的效率,浪费大量时间在查阅数据库存储结构上。(当然了,用GUI类数据库工具的可能除外。)

因为我比较依赖VIM + mysql client 的开发环境,所以,写了个PHP小脚本,一下子把所有表的create语句生成到一个文件夹中,并使用列表来管理,这样在vim中可以用gf热键,一下子就跳到那个表的定义,个人认为比较方便。

为什么不把所有的语句都存储到同一个文件中呢,有以下几个原因:

1. 有的表的中文 comment 编码格式不对,可能是乱码,这样可能会影响到下面出现的中文;

2. 如果有列表文件的话,比较好管理,一目了然,个人比较喜欢,呵呵 。

 

不磨叽了,源码如下:

 

 

/* *
* 用来生成MySQL数据库文档
* @filename mysql_db_creator.php
* @touch    2009年 09月 07日 星期一 14:33:47 CST
* @author   Yufeng Zhang
*/

define ( ' HOST '   ,   ' 192.168.1.162 ' );
define ( ' PORT '   ,   3306 );
define ( ' USER '   ,   ' zhangyufeng ' );
define ( ' PASS '   ,   ' zhangyufeng ' );
define ( ' DB_NAME '   ,   ' beijing ' );
define ( ' DB_CHARSET '   ,   ' utf8 ' );
// 数据表列表文件
define ( ' SAVE_FILE_NAME '   ,   ' ganji_v3_beijing_tables_list ' );
// 详细文档存入路径
define ( ' SAVE_FILE_FOLDER '   ,   ' ganji_v3_beijing ' );

// 定义路径
$path_info   =   pathinfo ( __FILE__ );
define ( ' DIR_NAME '   ,   $path_info [ ' dirname ' ]);

if ( ! is_dir (DIR_NAME  .   ' / '   .   SAVE_FILE_FOLDER)){
        
mkdir (DIR_NAME  .   ' / '   .   SAVE_FILE_FOLDER);
}


$mysql_link   =   mysql_connect (HOST  .   ' : '   .  PORT  ,  USER ,  PASS);
if ( ! $mysql_link ){
    
die ( " Counld not connect to Mysql:\n "   .   mysql_error ());
}

mysql_query ( ' use  '   .  DB_NAME);
mysql_query ( ' set names  '   .  DB_CHARSET);


$table_resource   =   mysql_query ( " SHOW TABLES FROM  "   .  DB_NAME ,   $mysql_link );
if ( ! $table_resource ){
    
die ( " Counld not open DB:\n "   .   mysql_error ());
}

$file_list    =   " ////////////////////////////////////////////\n " ;
$file_list   .=   " Welcome To Mysql_soup_list\n " ;
$file_list   .=   " ////////////////////////////////////////////\n " ;

$result_soup   =   '' ;

while ( $row   =   mysql_fetch_row ( $table_resource )){
    
$sql           =   " show create table  "   .   $row [ 0 ];
    
$get_sql       =   mysql_query ( $sql   ,   $mysql_link );
    
$result_soup   =   '' ;

    
if ( $row_table   =   mysql_fetch_row ( $get_sql )){
        
$result_soup   .=   " //------------------------------------\n " ;
        
$result_soup   .=   " //------------------------------------\n " ;
        
$result_soup   .=   " //   "   .   $row_table [ 0 .   " \n " ;
        
$result_soup   .=   " //   "   .   $row_table [ 1 .   " \n " ;
        
$file_save   =  SAVE_FILE_FOLDER  .   ' / '   .   $row_table [ 0 ];
    }

    
file_put_contents ( $file_save ,   $result_soup );
    
$file_list   .=  DIR_NAME  .   ' / '   .   $file_save   .   " \n " ;
}

file_put_contents (SAVE_FILE_NAME  ,   $file_list );
mysql_close ( $mysql_link );

 

 

大家有没有发现: 最后的变量名是result_soup 呵呵 ,是因为我最近在学习 ,大家如果有好的学习资料,请分享一下呀,呵呵 。

你可能感兴趣的:([PHP] 导出mysql数据库结构并生成列表的小脚本,供VIM使用)