最終更新日:
公開日:
レシピ
データベース SQLite
SQLite3を使ってをデータベースへ接続
SQLiteバージョン3のデータベースへ接続する方法について解説します。
この記事のポイント
- PHPからSQLiteデータベースに接続する
- とりあえず簡単なSQLを実行してみる
目次
SQLiteのデータベースへ接続する
SQLiteは名前に「ライト」が付く通り、軽量なデータベースです。
RDBMS(Relational DataBase Management System)のようにサーバー側でデータベースサーバーを起動して動作するものではなく、単一のファイルへアクセスする形で使用します。
このような特徴から、スマホのアプリにも組み込まれて使われることが多いデータベースです。
軽量とはいえ一般的なSQLは実行することができ、トランザクションもサポートするなど、データベースの持つべき機能は一通り備えています。
データの「型」は緩く癖がありますが、他のデータベースを使ったことがあればすぐに慣れると思います。
iOSやAndroidアプリに組み込まれて使用することも多いため、一度扱い方を知っておくとPHP以外でも使うシーンは広くあって便利です。
SQLite3データベースへの接続方法
SQLiteはファイルベースのため、データベースへのアクセス方法もファイルのようにパスを指定します。
例えば、「db」ディレクトリ内の「test.sqlite3」というデータベースにアクセスしたい場合は次のようになります。
コード例
$db = new SQLite3("./db/test.sqlite3");
$dbに接続したデータベースのオブジェクトが格納されるので、このオブジェクトを使って各種データベースの処理を実行します。
もし「test.sqlite3」が存在しない場合は、その名前で新しくデータベースが作成されます。
しかし、指定したディレクトリが存在しなかったり、権限(パーミッション)などでアクセスできない場合はエラーになります。
Note
SQLite3クラスはSQLiteバージョン3系列でのみ使用可能です。もしお使いの環境にインストールされたSQLiteのバージョンが2以前の場合はSQLiteクラスを使ってください。
データベースへの接続方法
「test」テーブルが存在すると仮定し、登録された全データを取得して出力するコードを実行してみましょう。
コード例
<?php
// 変数の初期化
$db = null;
$sql = null;
$res = null;
$row = null;
$db = new SQLite3("./db/test.sqlite3");
// データの取得
$sql = 'SELECT * FROM test';
$res = $db->query($sql);
?>
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>SQLite テスト</title>
</head>
<body>
<?php
while( $row = $res->fetchArray() ) {
echo '<p>' . $row[0] . '</p>';
}
?>
</body>
</html>
データを取得するSQLは一般的なSELECT文を使います。
取得したデータは$resへ格納されるので、その後にwhile文の中でデータを1件ずつ取得して出力するというコードです。
以上、SQLite3を使ったSQLiteデータベースへの接続方法でした。