SQLiteデータベース更新 [SQLite]
resource sqlite_query ( resource $dbhandle , string $query ) | |||
dbhandle | SQLite データベースリソース。手続きに従って、 sqlite_open() から返されます。 このパラメータは、 オブジェクト指向言語型メソッドを使用する場合は不要です。 | ||
query | 実行するクエリ。 クエリ内のデータは 適切にエスケープ する必要があります。 | ||
返り値 | この関数は結果ハンドルを返します。失敗した場合に FALSE を返します。 レコードを返すクエリの場合、結果ハンドルは sqlite_fetch_array() や sqlite_seek() のような関数で使用することができます。クエリの型によらず、この関数はクエリが失敗した場合にFALSE を返し ます。 |
SQLもさほど難しくはありません。梅酒データベースで実際に使用したSQL文です。
●レコード追加
$query = "INSERT INTO Umesyu (title,desc,maker,materials,alcMax,alcMin,capacity,price,other1,other2,other3)VALUES( '".$title."','".$desc."','".$maker."', '".$materials."','".$alcMax."','".$alcMin."', '".$capacity."','".$price."','".$smell."', '".$sweet."','".$after."','".$other1."', '".$other2."','".$other3."')"; |
●レコード削除
$query = "DELETE FROM Umesyu WHERE id = ".$id; |
●レコード更新
$query = "UPDATE Umesyu SET title='".$Umesyu->title."', desc='".$Umesyu->desc."', maker='".$Umesyu->maker."', materials='".$Umesyu->materials."', alcMax='".$Umesyu->alcMax."', alcMin='".$Umesyu->alcMin."', capacity='".$Umesyu->capacity."', price='".$Umesyu->price."', smell='".$Umesyu->smell."', sweet='".$Umesyu->sweet."', after='".$Umesyu->after."', other1='".$Umesyu->other1."', other2='".$Umesyu->other2."', other3='".$Umesyu->other3."' WHERE id = ".$Umesyu->id; |
●全レコード読み込み
'SELECT * FROM Umesyu'; |
SQLiteオープン/クローズ [SQLite]
SQLiteの操作ですが、通常データベースオープン→SQL発行→データベースクローズのような手順となります。
今回はデータベースのオープン/クローズ関数を見てみましょう。
1.sqlite_open()
SQLiteデータベースをオープンする。データベースが存在しない場合は作 成する 。
resource sqlite_open ( string $filename [, int $mode = 0666 [, string &$error_message ]] ) | |
filename | SQLite データベースのファイル名。もしこのファイルが存在しない場合、 SQLite はファイルを生成しようとします。 |
mode | ファイルのモード。 |
rror_message | 参照として渡され、エラーが発生した場合に データベースがオープンできなかった原因を説明する 記述的なエラーメッセージを保持するために設定されます。 |
返り値 | 成功時にリソース (データベースハンドル)、失敗時に FALSE を返します。 |
2.sqlite_close()
オープンされたSQLiteデータベースを閉じる。
void sqlite_close ( resource $dbhandle ) | |
dbhandle | SQLite データベースリソース。 sqlite_open() の戻り値です |
返り値 | 無し |
SQLiteの特徴 [SQLite]
SQLiteについて勉強しましたのでメモっておきます。
1.パブリックドメインでの提供
著作権などの権利が放棄された状態で提供されています。なので、誰でも自由に利用でき、商用/使用を問わず無料で使用できます。
2.データベースサーバが無い
各種ライブラリがデータベースを直接操作するため、インストールのが不要です。デスクトップアプリや携帯電話などで使用用途が考えられます。GoogleのAndroid端末でも採用されてますね。
3.1データベース1ファイル
ファイルをコピーするだけでバックアップ可能なため、管理が簡単です。
4.データ型を意識せずに利用できる
データ型を定義せずにテーブルを作成でき、データ型に関係なくデータを追加できます。
私はDBについてよく知らないのですが、そんな私でもSQliteなら出来そうです。
SQLiteでも使ってみるか [SQLite]
まず、ツールをインストールしましょう。いろんなツールがありますが、ジオプラスはSQLite2(バージョン2.8.17)ですのでTkSQLite を使ってみたいと思います。
スタンドアロン版をダウンロードしましょう。
●TkSQLite
Standalone executable binary (sqlite 2.8.17 / 3.4.0)
http://reddog.s35.xrea.com/wiki/TkSQLite.html
このままだと英語なので、環境変数LANGにjaを設定します。
起動したらメニューから、①[ファイル]→[SQLite2DBを新規作成]でDBを作成します。ジオプラスでは、アップロードできる拡張子が決まっていますのでumesyu.dbとしましょう。(umesyu.sqliteは使用できません。)
今回は、梅酒データベースを作ってみたいと思います。
必要となりそうなデータを挙げて見ましょう。
変数 | 型 | 説明 |
id | INTEGER PRIMARY KEY | プライマリーキー |
title | text | 銘柄 |
desc | text | 説明 |
maker | text | 製造者 |
materials | text | 原材料 |
alcMin | INTEGER | アルコール分 |
alcMax | INTEGER | アルコール分 |
capacity | INTEGER | 容量 |
price | INTEGER | 価格 |
smell | INTEGER | 香り |
sweet | INTEGER | 甘み |
after | INTEGER | 後味 |
other1 | text | 拡張用1 |
other2 | text | 拡張用2 |
other3 | text | 拡張用3 |
②に以下のSQL文を入力して、[データベース]→[SQL実行]を行うとDBが作成されます。
CREATE TABLE Umesyu ( id INTEGER PRIMARY KEY, title text, desc text, maker text, materials text, alcMin INTEGER, alcMax INTEGER, capacity INTEGER, price INTEGER, smell INTEGER, sweet INTEGER, after INTEGER, other1 text, other2 text, other3 text); |