Разработка веб-интерфейса к базе данных. Совместное использование PHP и MySQL
Динамические веб-сайты для хранения контента, как правило, используют базу данных. Серверный скрипт, взаимодействующий с БД, должен представлять веб-интерфейс для отправки информации и отображения результатов запроса к базе данных.
Задания к работе
- Создать базу данных mysite (использовать СУБД MySQL), содержащую следующие таблицы:
- myusers — для хранения данных о пользователях сайта (структура таблицы соответствуют данным из регистрационной формы);
- mycontent — для хранения текстовой информации (контента), отображаемой на страницах сайта. Примерная структура таблицы: pageid, userid, lastmod, title, description, content.
- Написать скрипт register.php, получающий данные о пользователе со страницы регистрации и записывающий эти данные в таблицу myusers.
- Создать форму авторизации (логин и пароль) и написать скрипт login.php, сравнивающий эти данные с записями из таблицы myusers. Если пара "логин + пароль" найдена в БД, то пользователь считается авторизованным, в ином случае выполняется перенаправление на страницу регистрации.
- Создать форму добавления контента на сайт и скрипт addpage.php, сохраняющий полученную информацию в таблице mycontent.
Примечание: Поскольку использование сессий будет рассмотрено позже, то значение userid в этом задании следует задать явно (например, в переменной). - Написать скрипт page.php, выбирающий данные из таблицы mycontent (по pageid) и отображающий их в виде веб-страницы.
Методические указания
Общий принцип работы с базой данных через веб-интерфейс можно описать следующим алгоритмом (на примере PHP+MySQL):
- Пользователь заполняет веб-форму и отправляет ее PHP-обработчику, заданному в атрибуте action.
- Веб-сервер принимает запрос и вызывает интерпретатор PHP с именем скрипта и данными веб-формы в качестве параметров.
- Интерпретатор PHP загружает на исполнение указанный скрипт и передает ему данные из формы.
- В процессе выполнения PHP-скрипта данные из формы подставляются в SQL-запрос.
- Из скрипта SQL-запрос передается серверу СУБД MySQL.
- Набор данных, полученный в результате выполнения SQL-запроса, возвращается вызывающему скрипту.
- PHP-скрипт использует полученные из БД данные для динамического формирования веб-страницы и возвращает ее веб-серверу, который, в свою очередь, отдает ее клиенту.
Схема взаимодействия серверного php-приложения с базой данных MySQL по приведенному алгоритму проиллюстрирована на рис. 1.
Рис. 1. Взаимодействие php-скрипта и БД MySQL
Таким образом, для разработки серверных php-приложений с поддержкой MySQL потребуется следующая конфигурация системы (на примере LAMP):
- Веб-сервер Apache;
- СУБД MySQL;
- PHP с модулями поддержки (библиотеками) для Apache и MySQL.
проверить наличие и состояние перечисленных компонентов можно, например, так (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