今回は、SQLiteを使用したプログラミングについて、軽く触れたいと思います。
SQLiteは、よくAndroidの開発で使用されます。(Androidに標準で入っているためですね)
ですので、Javaでの開発になりますが、それはいろんなサイトで書かれていると思うので
あえて、JavaではなくPHPについて記載していと思います。
と言っても、ものすごい簡単かつ、他のDBと取り扱いは同じです。
SQLiteにPHPで接続
コマンドライン上では、sqlite3 DBファイル名
でした。
PHPで接続する場合もほぼ一緒です。
$link = new SQLite3(DBファイル名);
これで接続できます。
とても簡単ですね。
SELECTクエリの実行
SQLite3のオブジェクトを使用して、クエリを実行します。
例えば、前回の記事で作成したテーブルから
データを取得するためのプログラムは下記のようになります。
$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文も同様で良いかと思います。
$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練習問題集