Tips

2014.11.17

SQLite SQLiteを触ってみよう 【第3回 プログラミング編】

今回は、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の連想配列となっている。

実行結果としては下記のようになります。
01_exec01
ただ、データを取得して、表示しているだけのプログラムですが
他の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文で取得した結果は下記の通り。
02_exec02
エラーが発生した場合、下記のようになる。
03_exec03

次回は、MariaDBとSQLiteでの速度比較等を行いたいと思います。

SQLが学べる 関連連載リンク

データベースの基礎が学べるSQL基礎講座
SQL基礎 連載

練習問題を通じてSQL理解度アップの人気連載!
SQL練習問題集

Recent News

Recent Tips

Tag Search