複数のCSV/TSVファイルをテーブル登録できます。 また、ありがちな前処理 / 後処理を簡単に行えます。
- CSV(文字コード:SJIS)
- TSV(文字コード:SJIS)
ファイルをテーブルに登録する前の事前処理 / 後処理を簡単に行えます。
用意されている処理は下記です。
- テーブルの削除
- テーブルのコピー
- テーブルのエクスポート(SQLファイル)
- チャットワークへの通知
ファイルをテーブルに登録することができます。
バルクインサートで一括登録します。
require_once(dirname(__FILE__) . '/../vendor/autoload.php');
require_once(dirname(__FILE__) . '/../DBConfig.php');
use bz0\CSVToDB as CSVToDB;
$client = new CSVToDB\Client();
//事前処理:テーブルコピー
$table = "test";
$copyTable = "test_" . date("YmdHis");
$client->setPrepareProcess(new CSVToDB\Process\TableCopy($table, $copyTable));
//事前処理:バックアップ
$bkupPath = dirname(__FILE__) . "/bkup.sql";
$client->setPrepareProcess(new CSVToDB\Process\TableExport($table, $bkupPath));
//事前処理:チャット通知
$client->setPrepareProcess(new CSVToDB\Process\ChatworkMessageSend("TOKEN", "ROOMID", "メッセージ"));
//後処理:テーブルコピー
$table = "test";
$copyTable = "run_" . date("YmdHis");
$client->setPostProcess(new CSVToDB\Process\TableCopy($table, $copyTable));
//CSVとテーブルカラムの指定
$column = array(
'sei',
'mei',
'yubin',
'tel'
);
$client->setColumnExecute(new CSVToDB\Column\BulkInsert($table, $column, true));
$filePathList = [
dirname(__FILE__) . "/file/sjis.csv",
dirname(__FILE__) . "/file/sjis.tsv"
];
$client->execute($filePathList);
DB情報を設定して下さい。
define('HOST', '');
define('DBNAME', '');
define('CHARSET', '');
define('DSN', '');
define('USER', '');
define('PASSWORD', '');
use bz0\CSVToDB as CSVToDB;
$client = new CSVToDB\Client();
必要であれば下記設定できます。
下記を指定して下さい
- バックアップ元のテーブル名
- バックアップ先のテーブル名
$table = "test";
$copyTable = "test_" . date("YmdHis");
//事前処理
$client->setPrepareProcess(new CSVToDB\Process\TableCopy($table, $copyTable));
//後処理
$client->setPostProcess(new CSVToDB\Process\TableCopy($table, $copyTable));
下記を指定して下さい
- バックアップ元のテーブル名
- バックアップ先のファイルパス
$table = "test";
$bkupPath = dirname(__FILE__) . "/bkup.sql";
//事前処理
$client->setPrepareProcess(new CSVToDB\Process\TableExport($table, $bkupPath));
//後処理
$client->setPostProcess(new CSVToDB\Process\TableExport($table, $bkupPath));
下記を指定して下さい
- 削除するテーブル名
//事前処理
$config->setPrepareProcess(new CSVToDB\Process\TableTruncate($table));
//後処理
$config->setPostProcess(new CSVToDB\Process\TableTruncate($table));
下記を指定して下さい
- トークン
- 通知する部屋番号
- 通知するメッセージ
//事前処理
$client->setPrepareProcess(new CSVToDB\Process\ChatworkMessageSend("TOKEN", "通知する部屋番号", "通知するメッセージ"));
//後処理
$client->setPostProcess(new CSVToDB\Process\ChatworkMessageSend("TOKEN", "通知する部屋番号", "通知するメッセージ"));
下記を指定して下さい
- テーブル名
- テーブルカラム(CSVでの並び順にする)
- ヘッダ有無の指定
$column = array(
'sei',
'mei',
'yubin',
'tel'
);
$client->setColumnExecute(new CSVToDB\Column\BulkInsert($table, $column, true));
読み込むファイルを指定して、実行します
$filePathList = [
dirname(__FILE__) . "/file/sjis.csv",
dirname(__FILE__) . "/file/sjis.tsv"
];
$client->execute($filePathList);