Абстракция уровня 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().