Учебно-методические материалы для студентов кафедры АСОИУ

Разработка веб-интерфейса к базе данных. Совместное использование PHP и MySQL

Динамические веб-сайты для хранения контента, как правило, используют базу данных. Серверный скрипт, взаимодействующий с БД, должен представлять веб-интерфейс для отправки информации и отображения результатов запроса к базе данных.

Задания к работе

  1. Создать базу данных mysite (использовать СУБД MySQL), содержащую следующие таблицы:
    1. myusers — для хранения данных о пользователях сайта (структура таблицы соответствуют данным из регистрационной формы);
    2. mycontent — для хранения текстовой информации (контента), отображаемой на страницах сайта. Примерная структура таблицы: pageid, userid, lastmod, title, description, content.
  2. Написать скрипт register.php, получающий данные о пользователе со страницы регистрации и записывающий эти данные в таблицу myusers.
  3. Создать форму авторизации (логин и пароль) и написать скрипт login.php, сравнивающий эти данные с записями из таблицы myusers. Если пара "логин + пароль" найдена в БД, то пользователь считается авторизованным, в ином случае выполняется перенаправление на страницу регистрации.
  4. Создать форму добавления контента на сайт и скрипт addpage.php, сохраняющий полученную информацию в таблице mycontent.
    Примечание: Поскольку использование сессий будет рассмотрено позже, то значение userid в этом задании следует задать явно (например, в переменной).
  5. Написать скрипт page.php, выбирающий данные из таблицы mycontent (по pageid) и отображающий их в виде веб-страницы.

Методические указания

Общий принцип работы с базой данных через веб-интерфейс можно описать следующим алгоритмом (на примере PHP+MySQL):

  1. Пользователь заполняет веб-форму и отправляет ее PHP-обработчику, заданному в атрибуте action.
  2. Веб-сервер принимает запрос и вызывает интерпретатор PHP с именем скрипта и данными веб-формы в качестве параметров.
  3. Интерпретатор PHP загружает на исполнение указанный скрипт и передает ему данные из формы.
  4. В процессе выполнения PHP-скрипта данные из формы подставляются в SQL-запрос.
  5. Из скрипта SQL-запрос передается серверу СУБД MySQL.
  6. Набор данных, полученный в результате выполнения SQL-запроса, возвращается вызывающему скрипту.
  7. PHP-скрипт использует полученные из БД данные для динамического формирования веб-страницы и возвращает ее веб-серверу, который, в свою очередь, отдает ее клиенту.

Схема взаимодействия серверного php-приложения с базой данных MySQL по приведенному алгоритму проиллюстрирована на рис. 1.

Схема взаимодействия PHP и MySQL

Рис. 1. Взаимодействие php-скрипта и БД MySQL

Таким образом, для разработки серверных php-приложений с поддержкой MySQL потребуется следующая конфигурация системы (на примере LAMP):

проверить наличие и состояние перечисленных компонентов можно, например, так (OpenSuSE 12.2):

aag:/-> zypper se php | grep -E "mysql|mod"
i	| apache2-mod_php5	| PHP5 Module for Apache 2.0
i	| php5-mysql	| PHP5 Extension Module
| php5-pear-MDB2_Driver_mysql	| MySQL MDB2 driver
| php5-pear-MDB2_Driver_mysqli	| MySQLi MDB2 driver

Символ «i» здесь обозначает, что отмеченные им компоненты (а они-то и нужны) уже установлены.

Доступ из PHP-скрипта к MySQL осуществляется через API этой СУБД, реализованного в виде библиотеки функций (для версии PHP5 это библиотека php5-mysql).

Установка сервера MySQL

Процедура развертывания сервера MySQL в OpenSuSE Linux описана в разделе «Установка и настройка MySQL», поэтому

// эта команда выведет список пакетов, содержащих в названии "mysql" aag:/home/aag # zypper se mysql

Контрольные вопросы

CC-BY-SA Анатольев А.Г., 12.12.2012