Главная страница
Навигация по странице:

  • Содержание отчета

  • SELECT

  • $db->Execute()

  • $res->MoveNext()

  • $db->getRow($sql)

  • Практическое использование

  • Методические указания к выполнению лабораторных и курсовой работ ЙошкарОла 2007


    Скачать 0.8 Mb.
    НазваниеМетодические указания к выполнению лабораторных и курсовой работ ЙошкарОла 2007
    Дата15.03.2022
    Размер0.8 Mb.
    Формат файлаdoc
    Имя файлаsql (1).doc
    ТипМетодические указания
    #397929
    страница8 из 11
    1   2   3   4   5   6   7   8   9   10   11

    Создание WEB-приложения на языке PHP с использованием СУБД SQL и библиотеки ADODB. Знакомство с методами блочной вёрстки и шаблонизатора SMARTY.

    Цель работы: Изучить основы скриптового языка PHP, изучить основные функции библиотеки Adodb, получить практические навыки использования методов блочной верстки, используя компилирующий обработчик шаблонов SMARTY.

    Порядок выполнения работы

    1. Определиться с семантической структурой будущего Web-приложения.

    2. Изучить основы скриптового языка программирования PHP.

    3. Разработать примерное графическое представление будущего Web-приложения.

    4. Выбрать СУБД. Определить структуру используемых баз данных.

    5. Составление логического каркаса Web-приложения с использованием языка программирования PHP и библиотеки Adodb.
    6. Разработать окончательный web-интерфейс приложения с использованием одного из методов блочной верстки со SMATRY-взаимодействием с PHP.
    7. Оформить отчёт.


    Содержание отчета

    1. Титульный лист;

    2. Цель работы;

    3. Описание структуры приложения и основных приёмов разработки;

    4. Выводы;

    5. Исходные тексты скриптов и шаблонов.



    Основные сведения

    Библиотека ADODB


    ADODB — это абстрактный класс доступа к базам данных, написанный на PHP. Преимущества Adodb заключаются в легкости в изучения Windows-программистами, поскольку использует синтаксис близкий к Microsoft ADO. В отличие от других PHP классов, которые в основном фокусируются только на SELECT-запросах, обращается внимание также на команды вставки (INSERT) и изменения (UPDATE) данных, которые очень быстро могут модернизироваться под потребности различных баз данных. Также существуют методы для обработки дат, конкатенации строк и экранирования строк по правилам различных баз данных. Система мета-типов построена так, что можно быть уверенными, что сохраняемые данные, например CHAR, TEXT, STRING, будут одинаковыми для всех баз данных. Adodb присуща легкая переносимость, потому что все низкоуровневые функции вынесены отдельно и нет необходимости вносить изменения в ядро класса, также реализована переносимость на уровне создания таблиц и индексов и поддержка сессии на уровне базы данных, поддержка истечения времени сессии и уведомлений. Особое внимание уделяется контролю работы базы данных и тонкой настройке производительности.

    Работа с Adodb


    Для работы Adodb необходим PHP версии 4.0.5. Библиотеку Adodb можно взять на официальном сайте Adodb: http://adodb.sourceforge.net.

    Инициализация класса


    Для запуска ADODB требуется 2 файла: первый – adodb/adodb.inc.php (содержит базовые функции, которые используются во всех классах) и, второй, - adodb/driver/adodb-????.inc.php (определяет специфические для конкретной базы данных функции).

    include_once("adodb/adodb.inc.php");

    Пример соединения с БД MS SQL SERVER:

    $db =& ADONewConnection('odbc_mssql');

    $dsn = "Driver={SQL Server};Server=localhost;Database=northwind;";

    $db->Connect($dsn,'userid','password');

    $db->debug = true;

    $db->setFetchMode(ADODB_FETCH_ASSOC);

    или, если вы предпочитаете использовать расширение mssql (который ограничен функциональность mssql 6.5):

    $db =& ADONewConnection('mssql');

    $db->Execute('localhost', 'userid', 'password', 'northwind');

    Данный пример демонстрирует подключение к БД. В строке



    $db =& ADONewConnection('odbc_mssql');

    cоздается объект соединения с базой данных. Именно через поля и методы данного объекта и будет в дальнейшем вестись работа с базой данных.

    $db->debug = true;

    Что касается режима отладки, то по умолчанию он выключен. При включенном режиме отладки на экран броузера будут выводиться SQL-запросы и тексты ошибок (если такие были). Очень упрощает процесс написания и отладки скриптов.

    Метод $db->setFetchMode() — указывает, каким образом данные о записях будут записаны в массив — будет ли это ассоциативный массив, или простой нумерованный или и тот и другой. Ей нужно установить одно из значений (0, 1, 2, 3). Для пояснений приведен код из исходников adodb:

       define('ADODB_FETCH_NUM',1);
       define('ADODB_FETCH_ASSOC',2);
       define('ADODB_FETCH_BOTH',3);
    ?>

    Судя по исходникам ADODB_FETCH_DEFAULT == ADODB_FETCH_BOTH

    Приведен запрос к БД:

    // делаем запрос к БД
    $res = $db->Execute("SELECT id, title, description FROM tab");
    // если по запросу найдены записи в таблице
    if ($res && $res->RecordCount() > 0) {
       // выводим эти записи в цикле
       while (!$res->EOF) {
          echo "ID = ".$res->fields['id']."\n";
          echo "title = ".$res->fields['title']."\n";
          echo "description".$res->fields['description'];
          // переходим к следующей записи
          $res->MoveNext();
       }
    }
    ?>

    Это простейший пример запроса к БД. Метод $db->Execute() выполняет запрос к базе данных и возвращает множество записей (recordset). Множество записей (recordset) — в ADODB является отдельным объектом, который имеет свои поля и методы для работы с полученными записями. Некоторые из них использованы в данном примере.

    • $res->EOF — равен true если обработаны все записи множества

    • $res->fields — хранит ассоциативный массив значений текущей записи

    • $res->RecordCount() — возвращает количество строк, полученных входе выполнения запроса

    • $res->MoveNext() — переходит к следующей записи (в массив $res->fields будет занесена следующая запись множества)

    Метод $db->Execute() — может быть использован для любых запросов:

    // делаем вставку строки
    $db->Execute("INSERT INTO tab(name, value) VALUES ('name', 'ha ha ha')");
    // получаем идентификатор вставки
    // аналог mysql_insert_id();
    $id = $db->Insert_ID(); 

    $db->Execute("DELETE FROM tab WHERE id = ".$id);
    ?>

    Некоторые полезные методы класса AdoConnection:

    • $db->getRow($sql) — возвратит массив со значениями первой записи из всего множестве найденных записей.

    • $db->getAll($sql) — возвратит 2-мерный массив со всеми найденными записями

    Практическое использование
    1   2   3   4   5   6   7   8   9   10   11


    написать администратору сайта