Основы PHP
  Что такое PHP?
  Возможности PHP
  Преимущества PHP
  История развития
  Что нового в PHP5?
  «Движок» PHP
  Переход на PHP 5.3
New Переход на PHP 5.6
  Введение в PHP
  Изучение PHP
  Основы CGI
  Синтаксис PHP
  Типы данных PHP
  Переменные в PHP
  Константы PHP
  Выражения PHP
  Операторы PHP
  Конструкции PHP
  Ссылки в PHP
  PHP и ООП
  Безопасность
  Функции PHP
  Функции по категориям
  Функции по алфавиту
  Стандартные функции
  Пользовательские
  PHP и HTTP
  Работа с формами
  PHP и Upload
  PHP и Cookies
  PHP и базы данных
  PHP и MySQL
  Документация MySQL
  Учебники
  Учебники по PHP
  Учебники по MySQL
  Другие учебники
  Уроки PHP
  Введение
  Самые основы
  Управление
  Функции
  Документация
  Математика
  Файлы
  Основы SQL
  Дата и время
  CURL
  Изображения
  Стили
  Безопасность
  Установка
  Проектирование БД
  Регулярные выражения
  Подготовка к работе
  Быстрый старт
  Установка PHP
  Установка MySQL
  Конфигурация PHP
  Download / Скачать
  Скачать Apache
  Скачать PHP
  Скачать PECL
  Скачать PEAR
  Скачать MySQL
  Редакторы PHP
  Полезные утилиты
  Документация
  PHP скрипты
  Скачать скрипты
  Инструменты
  PHP в примерах
  Новости портала
 Главная   »  Функции PHP
 
 

Функции абстрактного слоя баз данных (стиля dbm)

Введение

Эти функции являются фундаментом для доступа к БД в стиле Berkeley DB.

Имеется общий абстрактный слой для различных БД на основе файлов. Сама по себе функциональность ограничена обычным поднабором возможностей, поддерживаемых современными БД, такими как Sleepycat Software's DB2. (Это не конфликтует с программой DB2 IBM, которая поддерживается с помощью ODBC-функций.)

Требования

Поведение различных аспектов зависит от реализации конкретной БД. Такие функции как dba_optimize() и dba_sync() могут выполнять свои действия с одной БД и не выполнять - с другими. Вы должны загрузить и установить поддерживаемые dba-обработчики.

Таблица 1. Список обработчиков DBA
Обработчик Примечания
dbm Dbm это самый старый (оригинальный) тип БД в стиле Berkeley DB. Вы должны исключить его использование, если это возможно. Мы не поддерживаем функции совместимости, встроенные в DB2 и gdbm, поскольку они совместимы только на уровне исходного кода, но не могут обрабатывать оригинальный dbm-формат.
ndbm Ndbm это тип более новый и гибкий, нежели dbm. Но в нём ещё имеются некоторые ограничения dbm (поэтому он не рекомендуется).
gdbm Gdbm это GNU менеджер БД.
db2 DB2 это Sleepycat Software'sDB2. Он описан как "программный набор утилит, предоставляющий встроенную высокопроизводительную поддержку БД для самостоятельных и клиент/серверных приложений".
db3 DB3 это Sleepycat Software's DB3.
cdb Cdb это "быстрый, надёжный, небольшой пакет для создания и чтения константных БД." Этот - от автора qmail и находится здесь. Поскольку это константа, мы поддерживаем только операции чтения.

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

Установка

Используя опцию конфигурации --enable-dba=shared, вы можете построить динамически загружаемый модуль, чтобы сделать возможной поддержку в РНР баз данных dbm-стиля. Вы должны также добавить поддержку для как минимум одного из следующих обработчиков, специфицировав переключатель конфигурации --with-XXXX в строке конфигурации вашего PHP.

Таблица 2. Поддерживаемые обработчики DBA
Обработчик Переключатель конфигурации
dbm для включения поддержки dbm добавьте --with-dbm[=DIR].
ndbm для включения поддержки ndbm добавьте --with-ndbm[=DIR].
gdbm для включения поддержки gdbm добавьте --with-gdbm[=DIR].
db2 для включения поддержки db2 добавьте --with-db2[=DIR].
db3 для включения поддержки db3 добавьте --with-db3[=DIR].
cdb для включения поддержки cdb добавьте --with-cdb[=DIR].

Конфигурация

Это расширение не определяет никаких директив конфигурации.

Типы ресурсов

Функции dba_open() и dba_popen() возвращают дескриптор специфицированного файла БД, который используется при вызовах всех других функций dba.

Предопределённые константы

Это расширение не определяет никаких констант.

Примеры

Пример 1. DBA

<?php

$id 
dba_open("/tmp/test.db""n""db2");

if (!
$id) {
    echo 
"dba_open failed\n";
    exit;
}

dba_replace("key""This is an example!"$id);

if (
dba_exists("key"$id)) {
    echo 
dba_fetch("key"$id);
    
dba_delete("key"$id);
}

dba_close($id);
?>

DBA является binary safe (безопасным в бинарном режиме) и не имеет каких-либо ограничений. Однако он наследует все ограничения, установленные реализацией БД.

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

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

Пример 2. Проход по БД

<?php

// ...open database...

$key dba_firstkey($id);

while (
$key != false) {
    if (
true) {          // remember the key to perform some action later
        
$handle_later[] = $key;
    }
    
$key dba_nextkey($id);
}

foreach (
$handle_later as $val) {
    
dba_delete($val$id);
}

?>
Содержание

 
dba_close - закрывает БД
dba_delete - удаляет вхождение, специфицированное ключом/key
dba_exists - проверяет существование ключа
dba_fetch - извлекает данные, специфицированные ключом
dba_firstkey - извлекает первый ключ
dba_handlers - список всех доступных обработчиков
dba_insert - вставляет вхождение
dba_key_split - разбивает ключ на строковое представление в представление в виде массива
dba_list - список всех открытых файлов баз данных
dba_nextkey - извлекает следующий ключ
dba_open - открывает БД
dba_optimize - оптимизирует БД
dba_popen - открывает БД постоянно
dba_replace - заменяет или вставляет вхождение
dba_sync - синхронизирует БД
 
 
 Функции по алфавиту 
   Содержание   
 Функции по категориям 
Есть еще вопросы или что-то непонятно - добро пожаловать на наш  форум портала PHP.SU 
 

 
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS