SQLiteを使ったアクセスカウンタ

例1

あなたは 26281 人目のお客様です。

上のソース:

<?php
  try {
    $db = new PDO("sqlite:データベースファイル名");
    $r = $db->exec("update counter set cnt=cnt+1;");
    $a = $db->query("select cnt from counter;")->fetch();
    $db = null;
  } catch (PDOException $e) {
    echo "<p>エラー:", $e->getMessage(), "</p>";
  }
?>

<p>あなたは <?php echo $a[0]; ?> 人目のお客様です。</p>

「データベースファイル名」は,絶対パスで指定しても,PHPファイルのある場所からの相対パスで指定してもかまいません。拡張子は不要ですが,もし拡張子を付けたいなら .db を付ければいいでしょう。

データベースファイルの置き場所は,セキュリティに配慮して,public_htmlの外,例えば自分のホームディレクトリ直下に専用のフォルダを作っておきます。このフォルダは Apache プロセスがアクセスできるようなパーミッションにしておきます。

データベースファイルだけでなく,その入ったフォルダも,Apache がアクセスできるようにする必要があります。これは,データベース更新(insertやupdate)時に,データベースファイルと同じフォルダに一時ファイルを作るために必要なようです。

あらかじめサーバにログインして,このファイル名のデータベースを作っておきます:

cd データベースファイルの置き場所
sqlite3 データベースファイル名
create table counter(cnt int);
insert into counter values(0);
.exit

Last modified: