PHPでテキストファイルを簡易データベースとして使用するTextDbクラス公開!save($arr)
では、save($arr)の使い方を説明します。
save($arr)は引数に渡す配列によってレコード追加・更新を判断して実行します。
今、
このディレクトリ構成で、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を数値で取得する。 |