Работа с сервером баз данных с различными СУБД через ODBC

Термин ODBC(сокращение от «Open Database Connectivity», то есть «открытая архитектура баз данных») представляет собой интерфейс прикладных программ (API), позволяющий использовать общий набор абстрактных функций для работы с разными типами баз данных. Преимущества подобного подхода очевидны приложение может выполняться базами данных с различными СУБД т.е не зависить от типа СУБД. Работа с сервером баз данных через ODBC возможна лишь в том случае, если этот сервер является ODBC-совместимым. Другими словами, для него должны существовать драйверы ODBC. Хотя стандарт ODBC, разработанный компанией Microsoft, стал открытым стандартом, он в основном используется для работы с СУБД на платформе Windows; впрочем, драйверы ODBC также существуют и на платформе Linux. Приведем ссылки на драйверы для некоторых популярных СУБД:

Automation Technologies: http://www.odbcsdk.com;

Easysoft: http://www.easysoft.com/products/oob/main.pHTML;

MySQL (MyODBC): http://www.mysql.com;

OpenLinkSoftware: http://www.openlinksw.com.

Прежде чем начать работать с базами данных следует создать источник данных ODBC. Командой Пуск//Панель управления/Администрирование/Источники данных ODBC (32) запускается Администратор источников данных (рисунок. 2.1). Ис­поль­зуя страницу Пользовательский DSN (источники доступны только текущему пользовате­лю), Системный DSN (источники доступны всем пользовате­лям) или Файловый DSN (файлы), можно уста­но­вить дос­туп к конкретному файлу (базе данных, электронной таблице, текстовому файлу): указать DSN‑имя (для ссылки в программах), тип драйвера, пароль, имя пользователя и другую до­полни­тель­ную информа­цию. Описания DSN‑источников хранятся в реестре Windows, файловых ‑ в текстовых файлах с расширением DSN. Кнопками Добавить, Удалить и Настройка мож­но добавлять, удалять и изменять описания источников.

 

Рис. 2.1 - Окно Администратора источников данных

Функции ODBC в РНР, обычно называемые общими функциями ODBC, не только обеспечивают типовую поддержку ODBC, но и позволяют работать с некоторыми СУБД, обладающими собственным API, через стандартный ODBC API. К числу последних относятся следующие СУБД: Adabas D; IODBC; IBM DB2; Solid; Sybase SQL Anywhere.

В настоящее время существует около 40 общих функций ODBC (http://www.php.net/manual).

Приведем основные функции.

int odbc_connect(string источник_данных, string имя_пользователя, string пароль [, int тип_курсора]) - установить с ней связь c базой данных. В параметрах имя_пользователя и пароль, передаются имя пользователя и пароль, необходимые для подключения к источнику данных. Необязательный параметр тип_курсора предназначе'н для устранения проблем, возникающих при работе с некоторыми драйверами ODBC. Он может принимать одно из четырех возможных значений: SQL_CUR_USE_IF_NEEDED; SQL_CURSOR_USE_ODBC; SQL_CUR_USE_DRIVER; SQL CUR DEFAULT.

void odbc_close([int идентификатор_соединения]) – закрыть соединение, чтобы освободить все ресурсы, используемые открытым соединением. В параметре идентификатор_соединения передается идентификатор открытого соединения

Пример.

$connect =obdc_connect("myAccessDB", "user", "secret")or exit( "Ошибка при соединении");

odbc_close ($connect);

int odbc_prepare(int идентификатор_соединения , string запрос) - перед непосредственной обработкой запрос необходимо «подготовить». В параметре идентификатор_соединения передается идентификатор соединения, возвращаемый функцией odbc_connect( ). В параметре запрос передается текст запроса, который должен быть выполнен сервером. Если запрос не может быть выполнен, функция возвращает FALSE; в противном случае возвращается идентификатор результата, в дальнейшем используемый при вызове функции odbc_execute( ).

int odbc_execute(int идентификатор результата [, array параметры]) - запрос, подготовленный функцией odbc_prepare, выполняется). В параметре идентификатор_результата передается идентификатор результата, возвращаемый при успешном вызове odbc_prepare( ). Необязательный параметр передается лишь в том случае, если при вызове функции передаются дополнительные данные.

Пример.

$connect = @obdc_connect("myAccessDB", "user", "secret")

or exit("Ошибка при подключении к базе данных");

$query = "UPDATE customers SET cust_id = \"Milano, Inc.\"WHERE cust_id \"2000cu\"";

$result = odbc_prepare($connect, $query) or exit("Ошибки в запросе!");

$result = odbc_execute($result) or exit("Ошибки при выполнении запроса на обновление!");

odbc_close($connect);

int odbc_exec(int идентификатор_соединения , string запрос) - функция odbc_exec( ) объединяет odbc_prepare( ) и odbc_execute( ). В параметре идентификатор_соединения передается идентификатор соединения, возвращаемый функцией odbc_connect( ). В параметре запрос передается текст запроса, который должен быть выполнен сервером. Если запрос не может быть выполнен, функция возвращает FALSE; в противном случае возвращается идентификатор результата, используемый при последующих вызовах функций:

Пример.

$connect =obdc_connect("myAccessDB", "user", "secret")

or exit("Ошибка при подключении к базе данных ");

$query = "SELECT * FROM customers";

$result = odbc_exec($connect, $query) or exit("Ошибки при выполнении запроса!");

odbc_close($connect);

int odbc_result_all(int идентификатор_результата [, string формат_таблицы]) - форматирует и отображает все записи для идентификатора результата, полученного при вызове odbc_exec( ) или odbc_execute( ). В параметре идентификатор_результата передается идентификатор результата, возвращаемый при успешном вызове odbc_exec( ) или odbc_execute( ). В необязательном параметре формат_таблицы передаются характеристики таблицы HTML.

Пример.

($connect =obdc_connect("myAccessDB", "user", "secret")

or exit("Ошибка при подключении к базе данных ");

$query = "SELECT * FROM customers";

$result = odbc_exec($connect, $query) or exit("Ошибки при выполнении запроса!");

odbc_result_all($result, "BGCOLOR='#c0c0c0' border='1' ");

odbc_close($connect);

?>

В результате выполнения этого примера содержимое таблицы customers будет выведено в таблице на светло-сером фоне с рамкой толщиной 1.

int odbc_free_result(int идентификатор_результата) - освобождение всех ресурсов, связанных с завершенными операциями. В параметре функции передается идентификатор результата ($result), который больше не будет использоваться в программе. Все ресурсы памяти автоматически освобождаются по завершении сценария; таким образом, вызов функции odbc_free_result( ) необходим лишь для очень больших запросов, расходующих очень большие объемы памяти.








Дата добавления: 2015-04-15; просмотров: 1082;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.008 сек.