Информационные технологииStfw.Ru 🔍

Абстракция уровня dbm

Взаимодействие с базами данных
🕛 01.11.2006, 14:02
Эти функции предназначены для работы с разновидностями Berkeley DB. Фактически поддержка ограничена современными подобиями Slcepycat Software DB2 (не путайте с IBM DB2, использующей интерфейс ODBC).

Действие некоторых функций различается в зависимости от реализации БД. Например, функции dba_optimize() и dba_sync() действуют согласно описанию, но могут быть совершенно бесполезны для некоторых видов БД.

Чтобы добавить поддержку ниже перечисленных БД в РНР, используйте указанные параметры -with сценария конфигурирования configure.

Dbm - начальная версия Berkeley DB. Постарайтесь ее не использовать из-за проблем совместимости (- -with-dbm).
Ndbm - новый и более удобный тип, нежели dbm. Но имеет многие недостатки dbm (-with-ndbm).
Gdbra - GNU database manager (ftp://ftp.gnu.org/pub/gnu/gdbm/) (-with-gdbm).
DB2 - Sleepycat Software's DB2 (http://www.steepycat.com/). Описывается как «высокоскоростная, подходящая как для клиентских, так и для клиент-серверных приложений». Использует бинарные деревья вместо хеш-таблиц (-with-db2).
DB3 - Sleepycat Software's DB3 (- -with-db3).
Cdb - «быстрая, облегченная, для хранения констант»; предоставляет доступ только для чтения (- -with-cdb).
php $id = dba_open ("/Imp/test.db", "n". "db2').
if (!$id) { echo "dba_open failed\n": exit: }
1 dba_replace ("key". "This TS an example!", Sid):
/ if (dba_exists ("key", $id)) {
echo dba_fetch ("key", $nd): dba_delete ("key", $id): }
dba_sync($id): dba_close($id): ?>

DBA позволяет работать с двоичными данными и ограничена только возможностями БД. БД, использующие файлы, должны предоставлять возможность указания режима открытия файла БД (или его создания), и обычно это указывается в аргументе функций dba_open() и dba_popen().

Получить последовательно все содержащиеся в БД элементы можно, используя функции dba_firstkey() и dba_nextkey(). He изменяйте БД во время просмотра.

<?php i .. .open database .
$key - dba_firstkey (Sid):
while ($key ' = FALSE) {
If (.,.){ # запомнить имя для последующей
операции $handle_later[] = $'<еу: }
$key = dba nextkey (Sid): }
for ($1 = 0: $1 < count($handle_iater);
$i++) dbajJelete ($handle_later[$i]. $id): ?>

dba_open

Открытие БД

Int dba_open (string path, string mode, string handler [, ...])

Открывает содержащуюся в файле path БД типа handler в режиме mode, который .может принимать следующие значения: «г» для чтения, «w» для чтения и записи, «с» для открытия уже существующей (или i создания отсутствующей БД) с доступом для чтения и записи и «n» для создания файла БД заново и открытия его для чтения и записи. Дополнительные аргументы могут указываться для некоторых БД при необходимости. Функция возвращает дескриптор открытой БД / (необходимый последующим функциям для выполнения операций f, с БД) или, при ошибке, FALSE.

См. также: dba_popen(), dba_close().

dba_close

Закрытие БД

void dba_close (int handle)

См. также: dba_open() и dba_popen().

dba_popen

Устойчивое открытие БД

int dba_popen (string path, string mode, string handler [, ...])

Функция подобна dba_open(), но подключение не закрывается при завершении сценария, а остается действительным для последующего использования.

См. также dba_close().

dba_exists

Проверка наличия элемента в БД

bool dba_exists (string key. int handle)

Возвращает TRUE, если элемент с именем key имеется в БД handle FALSE в противном случае или при ошибке.

См. также: dba fetch(), dba_delete(), dba_insert() и dba_replace().

dba_firstkey

Возвращение имени первого элемента БД string dba_firstkey (int handle)

См. также Dba_nextkey().

dba_nextkey

Возвращение имени следующего элемента БД string dbajnextkey (int handle)

См. также dba_firstkey().

dba_fetch

Получение значения указанного элемента

string dba_fetch (string key, int handle)

См. также: dba_exists(), dba_delete(), dba_insert() и dba_replace().

dba_insert

Добавление элемента в БД

boo! dba_insert (string key, string value, int handle)

Если элемент с именем key уже присутствует в БД, операция не вы полняется. Возвращает TRUE пли FALSE - при ошибке.

См. также: dba_exists(), dba_delete(), dba_fetch(), dba_replace().

dba_replace

Замена или добавление элемента

boo! dba_replace (string key, string value, int handle)

Возвращает TRUE или FALSE - при ошибке.

См. также: dba_exists(), dba_delete(), dba_fetch() и dba_insert().

dba_delete

Удаление элемента

string dba_delete (string key, int handle)

Возвращает TRUE или FALSE - при ошибке.

См. также: dba_exists(), dba_fetch(), dba_insert() и dba_replace().

dba_optimize

Оптимизация БД

bool dba_optimfze (int handle)

Возвращает TRUE пли FALSE - при ошибке.

См. также dba_sync().

dba_sync

Синхронизация изменений в БД

boo! dba_sync (int handle) .

Обычно физически синхронизация изменений происходит сохранением файла на диск. Если эту операцию не выполнять, изменения БД будут потеряны.

Возвращает TRUE или FALSE - при ошибке.

См. также dba_optimize().

Учебник по основам PHP   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉