PHP поддерживает работу с различными базами данных. При этом реляционные базы данных типа Open Source так же хорошо представлены, как и коммерческие продукты. Если встроенная поддержка базы данных отсутствует, можно использовать ODBC с соответствующим драйвером. В главе 23, "Интеграция баз данных", обсуждаются стратегии использования баз данных на Web-узлах, работающих под управлением PHP.
Большинство функций из этого раздела опирается на дополнительные модули, которые могут быть загружены в конфигурационном файле php.ini или с помощью функции dl, но в большинстве случаев были скомпилированы при компиляции PHP.
Несмотря на то что в этой главе описываются функции PHP, работающие с различными СУБД, в ней не описаны все тонкости, присущие каждой из используемых СУБД. Перед ней также не ставилась задача стать обучающим материалом по языку SQL. Если вы уже выбрали определенную базу данных для дальнейшей интеграции с PHP, то должны были заранее побольше узнать о ней. Автор, например, является большим поклонником MySQL, и в 2001 году написал книгу, которая была издана Издательским домом "Вильямс" MySQL. Библиотека профессионала.
17.1. Общие моменты работы с базами данных типа DBM
В данном разделе кратко описываются DBA-функции, работающие с базами данных, удовлетворяющими стандарту СУБД типа Berkeley DB. Вместо сохранения реляционных записей базы данных типа DBM сохраняют пары ключ-значение, что соответствует ассоциативному массиву.
Функции, описанные в этом разделе, замещают набор функций, позволяющих работать с одним типом DBM-базы данных. Эти новые функции позволяют выбирать систему из PHP-кода, а не компилировать PHP только для одной базы данных DBM-типа.
Тип базы данных выбирается при установлении соединения, и остальные функции работают уже исходя из этого. Эти функции добавил Саша Шуман.
dba_close(resource connection)
Функция dba_close закрывает соединение с базой данных. Аргумент connection является целым числом, возвращенным функцией dba_open или dba_popen. Если вы не закрыли соединение с СУБД, за вас это сделает PHP.
boolean dba_delete(string key, resource connection)
Функция dba_delete (листинг 17.1) удаляет запись из базы данных. При этом необходимо указать ключ и активное подключение к базе данных, которое можно получить с помощью функции dba_open или dba_popen. Результат операции удаления возвращается в виде логического значения.
| Листинг 17.1. Программирование интерфейса с базой данных типа DBM_
<?php
// открыть базу данных в режиме записи
if(($db = dba_popen('inventory', 'w', 'gdbm')) === FALSE) {
print('базу данных открыть нельзя!'),-exit();
}
if(dba_exists('3', $db))
{
//если код 3 существует, задать для него значение, равное 150
dba_replace('3', 450', $db);
print("Заменили значение для кода 3<br>");
}
else
{
//кода 3 не существует, добавить его
dba_insert('3', 450', $db);
print("Добавили значение для кода 3<br>");
}
if(dba_exists('4', $db))
{
//удалить запись для кода 4
dba_delete('4', $db);
print("Удален код 4<br>");
}
Else
{
dba_insert('4', '500', $db);
print(" Добавлена запись для кода 4<br>");
}
// синхронизировать базу данных
dba_sync($db);
// получить все записи
for($key = dba_firstkey($db);
$key !== FALSE;
$key = dba_nextkey($db))
{
print("$key = " . dba_fetch($key, $db) . "<br>");
}
// close database dba_close($db);
?>
boolean dba_exists(string key, resource connection)
Функция dba_exists проверяет существование ключа. Аргументом connection представляется целое число, возвращенное функцией dba_open или dba_popen. Пример использования функции dba_exists см. в описании функции dba_delete.
string dba_fetch(string key, resource connection)
string dba_fetch(string key, integer skip, resource connection)
Функция dba_fetch предназначена для выборки записи по ее ключу. Вторую форму этой функции, включающую необязательный аргумент skip, поддерживают только базы данных CDB. Этот аргумент предназначен для задания количества пропускаемых повторяющихся записей. Аргумент connection задает переменную типа resource, возвращаемую функцией dba_open или dba_popen.
ТОП-10 популярных
Для работы с вещественными числами в MySQL предусмотрено три типа данных - это типы FLOAT, DOUBLE, DECIMAL. Числовой тип FLOAT...
БОЛЬШЕ БОЛЬШИХ LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Больше больших LCD-мониторов
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
Процесс вытеснения с рынка мониторов с электронно-лучевой трубкой (CRT) продолжается. О смещении акцентов в пользу LCD-мониторов теперь заявляют даже те...
НОУТБУК с блестящим экраном
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Eсли выпустившая ноутбук фирма предлагает его в качестве «замены настольному ПК», то это должно подразумевать под собой нечто большее, чем...
Иди и пиши. TravelMate C100
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Планшетный компьютер платформы Tablet PC обязан в первую очередь быть легким, способным достаточно долго работать без подзарядки батарей. Эти требования...
Магнито-оптический дисковод DynaMO
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Cейчас, когда традиционные флоппи-дисководы на долгие годы замерли в своем развитии, поиск альтернативных носителей продолжается, и ситуация, казалось бы, разрешилась...
Компьютер для гурманов.«Эксимер ДМ»
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Российская компания «Эксимер ДМ», известная как производитель настольных компьютеров, рабочих станций, серверов и ноутбуков, выступила техническим спонсором проведения торжеств, посвященных...
Для длинных строк, т.е. строк длиннее 255 символов, в MySQL предусмотрены типы BLOB (Binary Large Object, большой двоичный объект) и...
В дополнение к календарным типам, предназначенным для хранения даты и времени отдельно, MySQL также поддерживает гибридные типы данных DATETIME и...
Вообще, к изменению настроек сервера прибегают очень редко. В MySQL программа заранее настроена так, чтобы соответствовать самым распространенным и основным...
PHP. Базы данных
10-03-2015
<< Предыдущая статья | Следующая статья >> |
PHP. Обработка изображений и графики. Часть Шестнадцатая. | PHP. Базы данных. Часть Вторая. |