QDBMの読み書き

QDBMってKVが面白そうなので読み書きをやってみました。

QDBMのCreate

<?php
    // test.db ファイルにデータを書き込む処理

    // test.qdb ファイルを初期化します。
    $result = false;
    $db = dirname(__FILE__) . '/test.db';
    $dbh = dba_open($db, 'c', 'qdbm');
    dba_close($dbh);

    // test.db ファイルへデータを書き込みます。
    // w は write の w です。qdbm はKVの種類です。
    $dbh = dba_open($db, 'w', 'qdbm');
    $data = array(
        'key' => 'hoge',
        'value' => 'foo',
    );

    // 処理の成否が返るみたいです。
    $result = dba_insert($data['key'], $data['value'], $dbh);
    dba_close($dbh);

    return $result;

上記コードで、現在のフォルダにtest.qdbといったデータファイルが作成され、
$dataで指定されたキー値と値が書き込まれます。
この場合はとりあえず一つ入れてみました。

QDBMのRead

<?php
    // test.db の内容を全て読み込み出力する処理

    $list = array();
    $db = dirname(__FILE__) . '/test.db';
    $dbh = dba_open($db, 'r', 'qdbm');
    for($i =0, $key = dba_firstkey($dbh); $key != NULL; $i++) {
        $list[] = array($key => dba_fetch($key, $dbh));
        $key = dba_nextkey($dbh);
    }
    dba_close($dbh);
    echo '<pre>'.var_export($list, true).'</pre>';

HTMLに出力するとして、preではさみました。