2008/12/03

CQL Library Manual

CQLの基本的な説明を示します。
また、その使い方のサンプルを示します。

select文
引数の条件(where文)に合致したデータベースのレコードを
2次元配列(第1添え字は行番号、第2添え字はカラム名)として返す。
引数がない場合、テーブルの値をすべて返す。

select(String  $wheres)


insert文
引数(第1カラムの値、コンマ、第2カラムの値、コンマ、…)を
レコードとしてデータベースに格納する。
insert(String  $values)


update文
第2引数の条件(where文)に合致したデータベースのレコードの値を
第1引数(カラム名=値)の指定に従い、更新する。
第2引数がない場合、テーブルの値をすべて更新する。
update(String $set,  String $wheres)


delete文
引数の条件(where文)に合致したデータベースのレコードの値を
削除する。
引数がない場合、テーブルの値をすべて削除する。
delete(String $wheres)


SAMPLE
cql.phpと以下の2ファイル(cqltest.php, table.csv)を同ディレクトリに置き、cqltest.phpを実行する。

cqltest.php
<?php
include 'cql.php';


$cql = new CQL("./table.csv");


echo "<br/><br/>全部<br/>";
print_r($cql->select());

echo "<br/><br/>番号が3以下<br/>";
print_r($cql->select("
no<=3
"));

echo "<br/><br/>名前がochi<br/>";
print_r($cql->select("name=ochi"));

echo "<br/><br/>性別が男<br/>";
print_r($cql->select("sex=m"));
echo "<br/><br/>番号が3以上で性別が男<br/>";
print_r($cql->select("
no>=3
_AND_sex=m
"));

$cql->insert("6,kome,m");
echo "<br/><br/>番号6,名前kome,性別mを挿入<br/>";
print_r($cql->select());

$cql->update("name=hero","no<=4_AND_sex=m");
echo "<br/><br/>番号が4以下の男の名前をheroに更新<br/>";
print_r($cql->select());

$cql->delete("name=hero");
echo "<br/><br/>名前がheroを削除<br/>";
print_r($cql->select());

?>


table.csv
no,name,sex
1,ochi,m
2,ochiyuki,f
3,ochigames,m
4,yuki,f
5,games,m


実行結果
全部
Array ( [0] => Array ( [no] => 1 [name] => ochi [sex] => m ) [1] => Array ( [no] => 2 [name] => ochiyuki [sex] => f ) [2] => Array ( [no] => 3 [name] => ochigames [sex] => m ) [3] => Array ( [no] => 4 [name] => yuki [sex] => f ) [4] => Array ( [no] => 5 [name] => games [sex] => m ) )

番号が3以下
Array ( [0] => Array ( [no] => 1 [name] => ochi [sex] => m ) [1] => Array ( [no] => 2 [name] => ochiyuki [sex] => f ) [2] => Array ( [no] => 3 [name] => ochigames [sex] => m ) )

名前がochi
Array ( [0] => Array ( [no] => 1 [name] => ochi [sex] => m ) )

性別が男
Array ( [0] => Array ( [no] => 1 [name] => ochi [sex] => m ) [1] => Array ( [no] => 3 [name] => ochigames [sex] => m ) [2] => Array ( [no] => 5 [name] => games [sex] => m ) )

番号が3以上で性別が男
Array ( [0] => Array ( [no] => 3 [name] => ochigames [sex] => m ) [1] => Array ( [no] => 5 [name] => games [sex] => m ) )

番号6,名前kome,性別mを挿入
Array ( [0] => Array ( [no] => 1 [name] => ochi [sex] => m ) [1] => Array ( [no] => 2 [name] => ochiyuki [sex] => f ) [2] => Array ( [no] => 3 [name] => ochigames [sex] => m ) [3] => Array ( [no] => 4 [name] => yuki [sex] => f ) [4] => Array ( [no] => 5 [name] => games [sex] => m ) [5] => Array ( [no] => 6 [name] => kome [sex] => m ) )

番号が4以下の男の名前をheroに更新
Array ( [0] => Array ( [no] => 1 [name] => hero [sex] => m ) [1] => Array ( [no] => 2 [name] => ochiyuki [sex] => f ) [2] => Array ( [no] => 3 [name] => hero [sex] => m ) [3] => Array ( [no] => 4 [name] => yuki [sex] => f ) [4] => Array ( [no] => 5 [name] => games [sex] => m ) [5] => Array ( [no] => 6 [name] => kome [sex] => m ) )

名前がheroを削除
Array ( [0] => Array ( [no] => 2 [name] => ochiyuki [sex] => f ) [1] => Array ( [no] => 4 [name] => yuki [sex] => f ) [2] => Array ( [no] => 5 [name] => games [sex] => m ) [3] => Array ( [no] => 6 [name] => kome [sex] => m ) ) 
  続き

CQL Library


内容
CQLをPHPから、利用するためのライブラリ。
CQL(Comma Query Language)とは、SQLに近しい操作でcsvファイルを操作するクラスのこと。(私の造語)
やり方
CQL Library Manual(http://ochigames.blogspot.com/2008/12/cql-library-manual.html)参照。

http://sites.google.com/site/ochiyuki/cql.zip
※上のURLにアクセスしてください。
続き