程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> 導出mysql數據庫結構並生成列表腳本供VIM使用

導出mysql數據庫結構並生成列表腳本供VIM使用

編輯:關於PHP編程

  很多時候,大家都是要 “接過別人手中的槍” ,在已有的代碼上進行開發、修改……所以,很多時候,總是對數據的存儲結構不是很熟悉,影響工作的效率,浪費大量時間在查閱數據庫存儲結構上。(當然了,用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。

  轉自:http://www.cnblogs.com/amboyna/

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved