PHP в деталях



         

Объектно-ориентированное программирование. Часть 3. Абстрактные классы БД - часть 2


Пример из документации:

include("adodb.inc.php");

ADOLoadCode('mysql');

$db = NewADOConnection();

$db->Connect("localhost", "root", "password", "mydb");

$result = $db->Execute("SELECT * FROM employees");

if ($result === false) die("failed");

while (!$result->EOF) {

  for ($i=0, $max=$result->FieldCount(); $i < $max; $i++)

    print $result->fields[$i].' ';

  $result->MoveNext();

  print "<br>

";

  }

Если нужна база не MySQL, а Oracle, меняем вторую строку на

ADOLoadCode('oracle');

Программа сама подключает функцией [] файл с классом для нужной базы данных.

Поддержка разных баз осуществляется через дочерние классы.

В общем, все работает и пишется хорошо, и требования тоже "хорошие": объем подключаемого кода для БД MySQL равняется 34 килобайтам кода. Для справки: код для этого сайта включая класс шаблона и сами шаблоны "весит" 66 килобайт.

[] (Database access class).

В использовании ? примерно то же, что и AdoDB. Только в "комплекте" нет руководства. :) Разные базы поддерживаются дочерними классами, которые, насколько я понял, подключаются автоматически. Но здесь функций для выполнения запроса несколько ? select, insert, update и execute. Не знаю, может, это и удобнее с точки зрения обработки результата, но писать программы по моим прикидкам не будет ни удобнее, ни сложнее (по крайней мере, мне не приходилось сталкиваться с ситуацией, когда тип запроса выбирался в зависимости от ситуации).

[] (Database independent class, говорят, что переписан с Perl-овой версии).

Описано хорошо, но на сайте. Функции разделены, но на две (выборка и остальные запросы). Чтобы достать из архива какие-либо файлы, надо проявить хорошую смекалку. Потому что архив не распаковывается ? там в именах файлов двоеточия, и система грязно ругается. Заходим в файл class.DBI-....tgz, копируем оттуда в нужную директорию файл class.DBI-0.3.8.tar и открываем его в UltraEdit. Народным методом copy/paste достаем фрагмент кода под нужную базу. Фуф!




Содержание  Назад  Вперед