Oracle Berkeley DBはOracleが開発するKey-Value型のデータベースです。
簡単かつ高速にアクセスできるので、私が管理する他のサイト(私の鉄道模型検索など)で表示する商品の画像はすべてBerkeley DBに蓄えられたデータです。
下の例は、1つのデータベースに保存されたテキスト、画像、動画を呼び出しています。
動画 (取得元 /program/bdb.php?key=video)
※ MP4動画に対応していないブラウザは再生できません。
動作に必要なこと・もの
- PHPをインストール
- ウェブサーバーソフトウェア(Apache、nginxなど)上でPHPが動くようにする
- PHPでdba関数が使えるようにする
- Berkeley DBをインストール
- ソースファイルの拡張子をphpに変更してウェブサーバー上に設置
- この中のデータベース部分($db)を環境に合わせて変更し、そのディレクトリのパーミッションを変更
- ウェブサーバーソフトウェアの再起動
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に変更する。