今回は、SQLiteを使用したプログラミングについて、軽く触れたいと思います。
SQLiteは、よくAndroidの開発で使用されます。(Androidに標準で入っているためですね)
ですので、Javaでの開発になりますが、それはいろんなサイトで書かれていると思うので
あえて、JavaではなくPHPについて記載していと思います。
と言っても、ものすごい簡単かつ、他のDBと取り扱いは同じです。
SQLiteにPHPで接続
コマンドライン上では、sqlite3 DBファイル名
でした。
PHPで接続する場合もほぼ一緒です。
$link = new SQLite3(DBファイル名);
これで接続できます。
とても簡単ですね。
SELECTクエリの実行
SQLite3のオブジェクトを使用して、クエリを実行します。
例えば、前回の記事で作成したテーブルから
データを取得するためのプログラムは下記のようになります。
1 2 3 4 5 6 | $link = new SQLite3( '../db/test_db.sqlite' ); res = $link ->query( 'SELECT * FROM employee_tbl' ); while ( $row = $res ->fetchArray()) { echo $row [ 'id' ] . ' ' . $row [ 'name' ] . PHP_EOL ; } $link ->close(); |
- 1行目
DB接続・・・SQLite3クラスにDBファイルを指定し、インスタンス化 - 2行目
SQLの設定と発行・・・SQLite3オブジェクトからqueryメソッドにSQL文を設定し、発行 - 3~5行目
データ取得・・・取得したデータ数分ループし、表示。
カラムデータは$rowの連想配列となっている。
実行結果としては下記のようになります。
ただ、データを取得して、表示しているだけのプログラムですが
他のDBと違って、接続が非常に楽です。
INSERTクエリの実行
INSERT文の実行は下記のようになります。
UPDATE文も同様で良いかと思います。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | $link = new SQLite3( "../db/test_db.sqlite" ); $insSql = "INSERT INTO employee_tbl (name, gender, salary, notes) VALUES(" ; for ( $i = 1; 100 >= $i ; $i ++){ $res = $link -> exec ( $insSql . "'TEST NAME_" . $i . "'," . rand(1, 100) . "," . rand(1000000, 10000000) . "," . "''" . ")" ); if (! $res ){ echo "登録に失敗しました。n" ; $link ->close(); exit (); } } $link ->close(); |
- 2行目
SQLの設定・・・不変のSQL文の一部を設定。 - 3行目
ループ・・・100回ループ。 - 4~9行目
登録データの設定と実行・・・exec()
メソッドは戻り値がbooleanとなる。
rand(A,B)
は、A~Bまでの範囲でランダムに数値を算出。 - 10~14行目
エラー判定・・・SQLの実行でエラーが発生した際にメッセージを表示し、DBクローズ後、処理を終了。
上記を実行し、SELECT文で取得した結果は下記の通り。
エラーが発生した場合、下記のようになる。
次回は、MariaDBとSQLiteでの速度比較等を行いたいと思います。
SQLが学べる 関連連載リンク
データベースの基礎が学べるSQL基礎講座
SQL基礎 連載
練習問題を通じてSQL理解度アップの人気連載!
SQL練習問題集