1. はじめに
PHP と SQLite を利用してアクセスカウンターを作ります。
こんなウェブページです。
- カウントした値を SQLite のデータベースファイルに保存する。
- PHP によってデータベースを操作し、カウント数を1増やす。また、現在のカウント数を取得して画面に表示する。
2. ファイル構成
ファイルは2つあるだけです。
ディレクトリ
├─ index.php (ディレクトリにアクセスするとこのファイルが実行されます)
└─ db.db (SQLite のデータベースファイル)
3. SQLite のデータベースを用意する
以下のコマンドを実行して、SQLite のデータベース・テーブル・データを作成します。
$ sqlite3 db.db
sqlite> CREATE TABLE tbl1(id INTEGER PRIMARY KEY, count INTEGER);
sqlite> INSERT INTO tbl1 values(0, 0);
以下のテーブルとデータが生成されます。
id | count |
---|---|
0 | 0 |
4. PHPのコード
PHPのコードの中でポイントとなる部分を抜粋します。
$db = new SQLite3('db.db');
//--------------------------------
// カウンターをインクリメントする
//--------------------------------
$stmt = $db->prepare('
UPDATE tbl1
SET count = count + 1
WHERE id = 0'
);
$result = $stmt->execute();
//--------------------------------
// カウンター値を取得する
//--------------------------------
$stmt = $db->prepare('
SELECT count
FROM tbl1
WHERE id=0'
);
$result = $stmt->execute();
$arr = $result->fetchArray();
$count = $arr['count'];
5. デモページ
デモページを作成しました。
デモページ
? PHP + SQLite を利用してアクセスカウンターを作る6. おわりに
カウント数をテキストファイルに保存して利用する方法も考えられます。実際に昔よくありました。しかし、SQLite のデータベースを使えば、操作ミスなどにより値が書き換わってしまう不安感はかなり低くなります。 ファイルサイズはさすがにテキストファイルより大きくなりますが、それでも今回の場合だと 2.0Kバイトくらいです。お勧めです。