プログラミングで飯を食え。腕をあげたきゃ備忘録!

PHP、JavaScript、HTML5、CSS3などWEB系言語を中心に基本テク、備忘録をまとめます。Android、Iphoneアプリ開発についても!

PHPでテキストファイルを簡易データベースとして使用するTextDbクラス公開!save($arr)

サクウェブTVはコチラ↓↓↓
サクウェブTV

では、save($arr)の使い方を説明します。

save($arr)は引数に渡す配列によってレコード追加・更新を判断して実行します。

今、

f:id:senoway:20130804160245j:plain

このディレクトリ構成で、index.php

require_once 'TextDb.php';
$c_fields = array("id","name","address");
$c_db = new TextDb("tbl/customer.txt","::",$c_fields);

$i_fields = array("id","name","customer_id");
$i_db = new TextDb("tbl/item.txt","::",$i_fields);

と記述してあるとして、customer.txtに

tablename::customer
id::name::address
1::yamada::tokyo
2::tanaka::osaka
3::suzuki::kyoto
4::sato::tokyo
5::sasaki::tokyo

のような5つのレコードがあるとします。

レコードの追加

さて、save($arr)を使用してレコードを追加してみます。

以下のような感じです。

$arr = array(
    "name"=>"sugiyama",
    "address"=>"aichi"
);

$c_db->save($arr);

save($arr)に指定する配列には、カラム名をキーとして値を入れていけばOKです。

ちなみに値を指定しなかったカラムには0が記録されます。

 

これを実行するとcustomer.txtは

tablename::customer
id::name::address
1::yamada::tokyo
2::tanaka::osaka
3::suzuki::kyoto
4::sato::tokyo
5::sasaki::tokyo
6::sugiyama::aichi

こうなります。

idはオートインクリメントですので、勝手に増えます。

レコードが追加できましたね。

レコードの更新

レコードの更新にも同じsave($arr)を使用します。

変えるのは引数の配列の中身です。

レコードの追加ではidを指定しませんでしたが、更新の場合にはidを指定します。

idを指定することで、指定したidのレコードを更新する処理が行われます。

例は以下です。

$arr = array(
    "id"=>6,
    "name"=>"changed",
    "address"=>"changing"
);

$c_db->save($arr);

idが6のレコードを更新しているわけです。

実行結果は以下です。

tablename::customer
id::name::address
1::yamada::tokyo
2::tanaka::osaka
3::suzuki::kyoto
4::sato::tokyo
5::sasaki::tokyo
6::changed::changing

はい。更新できました。

関数名説明
get()

テーブルの全レコードを取得する。 

find($conditions = array()) 

検索条件を指定してレコードを取得する。

引数がない場合はget()と同じ動作をする。

 findJoin($join,$con1=array(),$con2=array())

テーブルを結合して

指定条件に合致したレコードを取得する。 

save($arr) 

レコードを追加または更新する。

引数の配列にidが指定されている場合は、

そのidのレコードを更新する。idがない場合は追加する。 

updateBase($form)  特定のレコードの特定のカラムを更新する。 
updateAll($arr,$conditions) 

指定した条件に合ったレコードの指定カラムを

一括更新する。 

delete($id)  指定したidのレコードを削除する。 
deleteAll($conditions) 

指定した条件に合ったレコードを

一括削除する。 

getLastId()  最後のレコードのidを数値で取得する。