7月 15

こんなものを見つけてみました。

dump取るのめんどうだなー。

と思って探すとやっぱりあるものですね。

Coders4Fun

こちらからそのクラスライブラリをダウンロードできます。

使い方はちょっとややこしいなぁ!と思いましたが、大丈夫でした。

ただ、自分はdbconnection周りをlib化しているので面倒なだけでした。

それでは使い方を。

【使い方】

1.インクルード
2.インスタンス生成
3.やりたいことを実行する

といった流れです。

では実例を。
[sourcecode language="php"]

/***
* @Param $db_name : データベース名
* @Param $file_anem : ダンプデータを保存するファイル名
* @Param $compress : 圧縮(true => gzip, false => no Commpress)
* @Param $hex          : 文字列をエンコード( true => to hex, false => no hex encode )
*/

$dumper = new MYSQLDump( $db_name, $file_name, $compress,  $hex ) ;

[/sourcecode]
これでまずはインスタンスを生成します。

次にdumpを取得します。

dumpの取得の仕方は確認したので2種類ほどありました。

Ⅰ. doDump()を呼び出してDB全てをdumpするもの。
Ⅱ. はテーブル単位でdumpを取得するもの。

上記の2つがあります。

まずはⅠから。

上のインスタンスを利用すると、以下のようになります。

[sourcecode language="php"]

$dumper = new MYSQLDump( $db_name, $file_name, $compress, $hex ) ;
$dumper->doDump() ;

[/sourcecode]

これでDB全体のdupmが完了します。

続きましてⅡの方法で。

同じインスタンスを利用してdumpを取得します。

[sourcecode language="php"]

$dumper = new MYSQLDump( $db_name, $file_name, $compress, $hex ) ;
$dumper->getTableStructure( $table_name ) ;
$dumper->getTableData( $table_name, $hex ) ;

[/sourcecode]

getTableStructure()はテーブルの構造をdumpします。

getTableData()で、テーブルデータをdumpします。

これによりファイルを個別にdumpして保存することが可能です。

インスタンスをそれぞれ個別に作成する必要があります。
理由としては、インスタンスを生成する際に、$file_nameをコンストラクトに渡しているので、linkResourceが生成されてしまっているため、クラス変数を再定義してもエラー及び、初期インスタンスの$file_nameが継承されているためです。

あとはdumpをDLさせるにはPEARのPEAR::File_Archiveを使ってDLさせることも可能です。

いやー、こうやってライブラリにしているとやはり便利ですね。

DBconnectionをLib化して応用きかなくなってるオレとは大違いです。

もっと見習わなきゃですね・・。

Leave a Reply