PHPとBerkeley DBでウェブ用簡単データベース

Oracle Berkeley DBはOracleが開発するKey-Value型のデータベースです。
簡単かつ高速にアクセスできるので、私が管理する他のサイト(私の鉄道模型検索など)で表示する商品の画像はすべてBerkeley DBに蓄えられたデータです。
下の例は、1つのデータベースに保存されたテキスト、画像、動画を呼び出しています。

テキスト (取得元 ?key=string)
画像 (取得元 ?key=photo 【注意】バイナリーデータが表示されます) (→ヘッダー情報ありの場合)
Berkeley DBに保存した画像データを呼び出す例
動画 (取得元 ?key=video)
※ MP4動画に対応していないブラウザは再生できません。

動作に必要なこと・もの

Berkeley DBとdba関数の導入

CentOS
PHPをインストール後、次のコマンドで導入可能:
yum -y install db4 php-dba
FreeBSD
portsのphp5-dbaディレクトリ内で
make install clean
途中表示されるオプションで、BDBに[X]をつけてインストールを進める。

dba関数を使ってデータベースを読み書き

dba_open
データベースをオープンする関数で、2番目のパラメーターの組み合わせでどのようなモードでデータベースにアクセスするかを指定する
1番目の文字:データベースのアクセス方法
r : 読み込みのみ
w : 読み書き
n : データベースの生成および読み書き
2番目の文字:データベースのロック方法
l : .lckファイルを生成してロック
d : データベースファイルをロック
dba_popen
データベースを継続的にオープンする関数で、2番目のパラメーターでどのようなモードでデータベースにアクセスするかを指定する
パラメーター
r : 読み込みのみ
w : 読み書き
n : データベースの生成および読み書き
dba_replace
dba_popenでモードwまたはnを指定してデータベースをオープンしたとき、この関数によりデータを登録または上書きします。同一キーで登録すれば自動的に上書きとして処理される。
dba_fetch
データを取得する。
更新履歴
2011/05/21
このページを作成して公開する。
2011/05/23
dba_open関数の説明を追加する。
2015/02/21
動画ファイルをMP4に変更する。