Руководство по РНР 3.0 - Функции dbm

Содержание

dbmopen

dbmclose

dbmexists

dbmfetch

dbminsert

dbmreplace

dbmdelete

dbmfirstkey

dbmnextkey

dblist

Эти функции позволяют работать с записями dbm-подобных баз данных. Данный тип баз данных (поддерживается

как библиотеками Berkley db, gdbm и некоторыми другими, так и встроенной в PHP3 библиотекой) оперирует с парами

ключ/значение (в противоположность полноценным записям, поддерживаемым реляционными базами данных).

Пример 1. Пример dbm

$dbm = dbmopen("lastseen", "w");

if (dbmexists($dbm, $userid)) {

  $last_seen = dbmfetch($dbm, $userid);

} else {

  dbminsert($dbm, $userid, time());

}

do_stuff();

dbmreplace($dbm, $userid, time());

dbmclose($dbm);

dbmopen

dbmopen -- открывает базу данных dbm

Описание

int dbmopen(string filename, int flags);

Первый аргумент  - это полный путь к открываемому dbm-файлу, а второй - режим

открытия файла, который может быть следующим: "r","n", "w" соответственно только для чтения, создания (включает

чтение-запись и может обрезать уже существующую базу данных с тем же именем) и чтения-записи.

Возвращает идентификатор, который в дальнейшем передается другим dbm-функциям, или false при неуспехе.

Если используется поддержка ndbm, создаются файлы filename.dir и filename.pag. gdbm использует только один

файл, и Berkley db создает файл filename.db. Заметьте, что PHP3 самостоятельно делает свою собственную

блокировку в дополнение к блокировке самой dbm-библиотки. PHP не удаляет .lck-файлы, созданные этой библиотекой,

а рассматривает эти файлы просто как фиксированные i-узлы на которые надо делать блокировку.

Более полную информацию о dbm-файлах можно получить на ftp://prep.ai.mit.edu/pub/gnu и man-страницах.

dbmclose

dbmclose -- закрывает базу данных dbm

Описание

bool dbmclose(int dbm_identifier);

Разблокирует и закрывает указанную базу данных.

dbmexists

dbmexists -- сообщает, существует ли в базе данных значение для ключа

Описание

bool dbmexists(int dbm_identifier, string key);

Возвращает true если существует значение, ассоциируемое с ключом key.

dbmfetch

dbmfetch -- извлекает из базы данных значение ключа

Описание

string dbmfetch(int dbm_identifier, string key);

Возвращает значение ключа key.

dbminsert

dbminsert -- вставляет в базу данных значение ключа

Описание

int dbminsert(int dbm_identifier, string key, string value);

Добавляет в базу данных значение с указанным ключом key.

Возвращает -1 если база данных была открыта в режими только чтение, 0 если добавление произошло успешно

и 1 если указанный ключ уже существует. (Для замены значения следует использовать dbmreplace().)

dbmreplace

dbmreplace -- заменяет значение ключа

Описание

bool dbmreplace(int dbm_identifier, string key, string value);

Замещает значение указанного ключа.

Если ключ не существует, функция добавляет его в базу данных.

dbmdelete

dbmdelete -- удаляет занчение ключа из базы данных

Описание

bool dbmdelete(int dbm_identifier, string key);

Удаляет значение ключа из базы данных.

Возвращает false если ключ в базе данных не существует.

dbmfirstkey

dbmfirstkey -- возвращает первый ключ из базы данных

Описание

string dbmfirstkey(int dbm_identifier);

Возвращает первый ключ базы данных. Заметьте, что упорядочивание не гарантируется, т.к. база данных

может быть построена на основе хэш-таблиц, которые не предусматривают упорядочивание.

dbmnextkey

dbmnextkey -- возвращает следующий ключ базы данных

Описание

string dbmnextkey(int dbm_identifier, string key);

Возвращает ключ, следующий после ключа key. С помощью вызова dbmfirstkey(), а затем dbmnextkey() возможно

пройти по всем парам ключ/значение в базе данных. Например:

Пример 1. Прохождение по всем парам ключ/значение.

$key = dbmfirstkey($dbm_id);

while ($key) {

    echo "$key = " . dbmfetch($dbm_id, $key) . "\n";

    $key = dbmnextkey($dbm_id, $key);

}

     

dblist

dblist -- описывает используемые dbm-совместимые библиотеки

Описание

string dblist(void);

Назад, к содержанию




HTML Site Map

Rambler's Top100
© 2009 Тест скорости интернета |  Boont.Ru