愚痴ばっかいってないで、たまには役にたつ(かもしれない)ことを書こうと思った。
というわけで、そういえばPHP使いなのでPHP用のクラスを作った。
CSVにSQLを発行。UPDATEでもJOINでもなんでもできる。
PDO_SQLITEがいるけど、PHP5なら普通にあると思う。あまり考えて書いてないので、ガイシュツならそっちを使ってくれ(ぉ
正体は、CSVを全行読み込んでメモリ上のSQLiteに書き出しただけ。なので巨大なcsvを扱うのはやめたほうがいいかもなー。
PDOを継承してるので、PDOの命令が全部使えます。
で、commit()とかやるとコミットついでにCSV保存もします。全ファイル全行書く手抜きなので、遅いのはここ。なので、用途と読み込むCSVファイル数は考えたほうがよさげ。
とはいえ5千行くらいなら余裕だと思うし、けっきょく全行読んで配列作ってたりとかするよりはいいんじゃないかなあ。どうかなあ。
require_once "CSVSQL.php";
//csvファイルを指定してnew
//ディレクトリ名指定だと中のcsv全部
//配列で読み込むcsvファイルを複数指定
$csvh = new CSVSQL("./csv");
//あとは普通にPDO。
$sth = $csvh->prepare("SELECT * FROM csv_test t1 JOIN csv_test2 t2 ON t1.c1 = t2.c0 WHERE t1.c0 = ?");
……
//保存
$csvh->commit();
作られるテーブル名は、
で、カラムは
です。手抜きです。
あとcreateメソッドで新しいcsvを作れます。