Каталог статей
Поиск по базе статей  
Статья на тему Интернет » Интересное в сети » «Классная» обертка для MySQL

 

«Классная» обертка для MySQL

 

 

Создание веб-сайтов, использующих базу данных, влечет за собой необходимость включения в ваш код вызовов запросов SQL, а затем и необходимость считывания данных. Все было бы хорошо, но в некоторых случаях использование конкретной базы данных влечет за собой возможные сложности в будущем. Например, при необходимости срочно перенести сайт с одного хостинга на другой может возникнуть масса проблем с взаимозаменяемостью различных СУБД хотя бы на уровне вызова конкретных функций PHP. В том случае, если возможность такой миграции не исключена, замена стандартных запросов к базе данных на использование методов специального PHP-класса позволит вам сэкономить массу времени и средств. В статье даются рекомендации по использованию PHP-класса ADODB для работы с базой данных взамен классического линейного решения задачи общения с базой данных.

загрузка...

 

 

По уровню документированности и функциональности это решение является одним из самых приемлемых для организации прослойки между базой данных и ядром (набором функций) веб-сайта.

Установка класса

Установка ADODB состоит из следующих этапов:

  • Необходимо скачать сам класс непосредственно из раздела Downloads официального сайта проекта ADODB. Если вы используете операционную систему Microsoft, лучше закачивать архив типа zip (проще развернуть подручными средствами). Для *nix больше подойдет тип tar.gz (имеет меньший размер, чем zip).

  • Далее содержимое этого архива следует развернуть в подкаталог ADODB одной из директорий, прописанных в качестве каталога размещения классов в конфигурации PHP. Местоположение такого каталога — параметр, который указывается в конфигурационном файле php.ini в виде значения параметра include_path. Если вы не имеете доступа к настройкам PHP, то для принятия решения при размещении класса проще всего будет просмотреть содержание вывода функции phpinfo(). Это скорее дело вашего вкуса, поскольку для нормальной работоспособности веб-приложений можно указать и относительное (к текущему скрипту) местоположение класса, но применение стандартных методов сильно облегчит разработку, требующую принятия коллективных решений. Один из таких стандартных методов как раз и заключается в использовании нескольких включаемых директорий. Тем более что такой подход позволяет администратору веб-хостинга при помощи обновления всего одного этого класса фактически обновлять все приложения, которые используют его в качестве интерфейса к базе данных.

Обычно в качестве одного из каталогов, перечисленных в параметре include_path, фигурирует и текущий каталог (символ «точка»). В том случае если вы не имеете доступа ни к одному из каталогов, перечисленных в этом параметре, при подключении класса вам придется использовать абсолютный путь размещения вашего класса.

Содержание архива с ADODB

Подключение ADODB к вашему скрипту

Для включения возможностей ADODB в вашем PHP-приложении достаточно добавить всего одну строку: require("ADODB/ADODB.inc.php");. В кавычках также можно указывать абсолютный путь, если нет доступа к каталогу include_path.

Изменение типа используемой базы

Когда вы подключаетесь к базе данных, используя обычные функции PHP, ваш код может выглядеть примерно следующим образом:

 
$db = mysql_connect("localhost", "user", "password");
mysql_select_db("mydb", $db);

Использование же прослойки в виде ADODB позволяет использовать более формализированный подход к подключению:

 
$db = NewADOConnection("mysql");
$db->Connect("localhost", "user", "password", "mydb");

Тут вы имеете полное право спросить: "Ну и что же тут особенного?" Ситуация становится предельно ясной, если вы представите себе перенос веб-сайта на другой хостинг, где используется база данных MSSQL. При этом необходимо будет как минимум изменить синтаксис оператора подключения к базе данных (не говоря уже обо всех вызовах функций, обрабатывающих запросы к базе данных). Гораздо проще изменить всего один параметр в коде подключения, использующем ADODB:

 
$db = NewADOConnection("mssql");

Если подключения к базе данных используются в нескольких разделах вашего сайта, достаточно будет вынести создание нового объекта ($db) в функцию. Далее можно поместить эту функцию в файле, который будет доступен в контексте всех скриптов, которые используют подключения к базе данных. Если же в будущем возникнет необходимость перейти на другую базу данных, вам нужно будет всего лишь изменить реквизиты подключения, а не править весь код.

Подключение с помощью строки DSN

Класс ADODB позволяет кроме вызова функции Connect выполнять подключение к базе с помощью DSN-строки (строки в виде URL), в которой содержатся все необходимые для подключения реквизиты. Например, возможен следующий синтаксис команды подключения к базе данных MySQL:

 
$conn = NewADOConnection("mysql://user:password@localhost/test/");

Подробный синтаксис строк подключения DSN для различных баз расписан в документации по классу, которая находится в файле ./docs/docs-ADODB.htm относительно его установочной директории.

Выборка данных

Если вы сталкивались с разработкой программ, для работы с базами данных в среде Delfi/Kylix вам будет очень знакома концепция доступа к данным, которая используется в этом классе. Это так называемый подход последовательного доступа, который предусматривает наличие методов «Получить следующую запись» или атрибута «Конец файла», необходимых для реализации доступа к строкам с результатами запросов. Сказанное можно продемонстрировать на примере получения набора записей из таблицы one, находящейся в базе данных test. При линейном программировании вы используете следующий синтаксис:

 
$res = mysql_query("SELECT * FROM test.one");
while ($arr=mysql_fetch_row($res))
{
 for ($i=0; $i<count($arr); $i++)
 echo "$i> [".$arr[$i]."]\n";
}

В случае использования ADODB вам придется сначала выполнить метод, отправляющий запрос на сервер, а далее последовательно получить строки для такого запроса. Код с применением AADODB будет выглядеть следующим образом:

 
$db = NewADOConnection("mysql://root:@localhost/test");
$result = $db->Execute("SELECT * FROM one");
while (!$result->EOF)
{
 for ($i=0, $max=$result->FieldCount(); $i<$max; $i++)
 print $result->fields[$i]." ";
 $result->MoveNext();
 print "\n";
}

Миграция PHP-скриптов на ADODB

Перевод существующего кода в обертку ADODB позволяет упростить дальнейшую разработку вашей системы. Фактически переход под класс «для базы данных» представляет собой замену всех вызовов функций, которые обращаются напрямую к MySQL, на вызовы методов класса. Кроме того, иногда необходимо будет использовать дополнительные методы (вроде MoveNext). Но в итоге вы сможете достичь большей степени гибкости вашего приложения. Конечно же, само по себе применение оберток вроде ADODB не уберегает вас от полного отсутствия ошибок в вашем коде. Но основные преимущества (читабельность кода и универсальность методов доступа) при условии длительной разработки вашего приложения могут значительно ускорить внесение изменений и дополнительной функциональности.

Достоинства

Можно долго перечислять достоинства ADODB, но список поддерживаемых ею систем управления баз данных сам по себе говорит о многом. Итак, ADODB умеет работать с MySQL, Interbase, Sybase, PostgreSQL, Oracle, Microsoft SQL server, Foxpro ODBC, Access ODBC, Informix, DB2, Sybase SQL Anywhere, generic ODBC and Microsoft's ADO. Это позволяет вам практически произвольно изменять тип хранилища ваших данных, не беспокоясь про то, что веб-сайт будет временно недоступен. Также это дает возможность делать кросс-платформенные приложения. Кроме того, внутренняя структура ADODB позволяет подключать и любую другую, не приведенную в этом списке SQL базу данных с помощью механизма драйверов.

Сообщения про ошибки

ADODB позволяет уменьшить влияние ошибок в ваших SQL-запросах на общий уровень защищенности сайта также благодаря возможности скрытия сообщений про ошибки. Кроме того, класс предлагает возможности для локализации своих сообщений про некорректно выполненные операции.

Обеспечение надежности

Использование классов-оболочек позволяет выделить в общей концепции вашего приложения такие задачи, как обеспечение надежности вашего приложения, в плане ограничения доступа посетителей вашего веб-сайта к данным. Если вы используете «линейное» обращение к базе данных, вы можете разве что зафиксировать все запросы в лог-файле. И это только в том случае, если вы имеете необходимые административные пары. Классы-оболочки вроде ADODB позволяют ограничить исполнение нежелательных SQL-запросов. Например, если вы точно знаете, что сайт должен только предоставлять данные посетителям, вполне можно ограничить все множество запросов только SELECT. Проще всего это сделать, создав класс, наследующий способности ADODB, или введя необходимые изменения в сам код класса (именно необходимого вам драйвера).

Конфиденциальность доступа

В том случае если вы не хотите раскрыть ваши реквизиты подключения к базе данных, а намерены пригласить консультанта или вести групповую разработку веб-приложения, достаточно прописать создание объекта класса ADODB в самом скрипте ADODB.inc.php либо с помощью DSN, либо вызовом функции Connect.

Выводы

Конечно, за унификацию доступа к различным базам данных нужно будет заплатить временем, потраченным на переработку уже существующего кода. В том же случае, когда разработка веб-сайта происходит с чистого листа, использование такого механизма доступа к базе данных, как ADODB, позволяет в дальнейшем значительно ваше время и средства заказчика.

Ссылки по теме




Статья получена: hostinfo.ru
загрузка...

 

 

Наверх


Постоянная ссылка на статью "«Классная» обертка для MySQL":


Рассказать другу

Оценка: 4.0 (голосов: 16)

Ваша оценка:

Ваш комментарий

Имя:
Сообщение:
Защитный код: включите графику
 
 



Поиск по базе статей:





Темы статей






Новые статьи

Противовирусные препараты: за и против Добро пожаловать в Армению. Знакомство с Арменией Крыша из сэндвич панелей для индивидуального строительства Возможно ли отменить договор купли-продажи квартиры, если он был уже подписан Как выбрать блеск для губ Чего боятся мужчины Как побороть страх перед неизвестностью Газон на участке своими руками Как правильно стирать шторы Как просто бросить курить

Вместе с этой статьей обычно читают:

Acura RS-X - новое купе для высоких результатов

Acura RS-X - все для выдающихся результатов Американское подразделение компании Honda представило на Североамериканском Международном автомобильном салоне в Детройте новое роскошное спортивное купе Acura RS-X. Вице-президент компании Honda Dick Colliver говорит, что Acura RS-X - опытный образец технологий и направлений моделирования новых спортивных гоночных купе, которые придут на замену устаревшей Integra. Опытный образец RS-X создан с использованием новых компьютерных те ...

» Американскии автомобили - 2744 - читать


Opel Corsa: Почем Опель для народа?

В тесте участвуют автомобили: Opel Corsa Opel Corsa B — малый автомобиль за малые деньги Иногда покупка маленькой подержанной машины объясняется тем, что на такой «крохе» удобно ездить по городу, она «ест» мало бензина и так далее. Однако на самом деле выбор в пользу совсем небольших машин в большинстве случаев гораздо прозаичнее — доступная цена.

» Американскии автомобили - 3308 - читать


Chevrolet Niva: Полноприводный конь для российской борозды

В тесте участвуют автомобили: Chevrolet Niva Посмотреть другие фото (14) Во многих регионах нашей страны такие дороги, по которым можно проехать только на внедорожнике – желательно отечественном, который и отремонтировать смогут почти в любом автосервисе, и недорогом, которым не будет сильно жалко «утюжить» ямы и колдобины отечественных магистралей. Одно время очень популярным автомобилем среди небогатых россиян, ценящих полный привод и большой дорожный просвет, был автомоб ...

» Американскии автомобили - 3921 - читать


MySQL – почему и&nb p;для чего

/redir.php?url=www.mysql.com%3C%2Fa%3E%3C%2Ftd%3E%3C%2Ftr%3E Скорее всего, вы уже слышали название MySQL – если вы создавали или поддерживали веб-сайты, или администрировали сервера под управлением Linux, или разрабатываете разное корпоративное ПО. Но если даже вы пока не знакомы с этим чрезвычайно мощным и удобным продуктом – не беда, далее мы расскажем все тонкости применения и работы с MySQL. Итак, MySQL – это реляционная база данных (СУБД, система управления базами данн ...

» Интересное в сети - 1660 - читать


Обертка для халтуры

На столичном рынке элитного жилья — кризис продаж. Риелтеры вынуждены придумывать свежие ходы, призванные повысить ликвидность новых проектов. Одним из них может стать продажа квартир в элитных новостройках с отделкой.

» Строительство жилья - 1300 - читать



Статья на тему Интернет » Интересное в сети » «Классная» обертка для MySQL

Все статьи | Разделы | Поиск | Добавить статью | Контакты

© Art.Thelib.Ru, 2006-2024, при копировании материалов, прямая индексируемая ссылка на сайт обязательна.

Энциклопедия Art.Thelib.Ru