こんなものを見つけてみました。
dump取るのめんどうだなー。
と思って探すとやっぱりあるものですね。
こちらからそのクラスライブラリをダウンロードできます。
使い方はちょっとややこしいなぁ!と思いましたが、大丈夫でした。
ただ、自分は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化して応用きかなくなってるオレとは大違いです。
もっと見習わなきゃですね・・。