Тема № 14. PHP и MySQL. Доступ к базе данных MySQL из Web с помощью РНР

Цель работы:Получение практических навыков по связке MySQL и PHP.

В заданиях данной темы используется база данных BOOKS, схема которой представлена на рис. 3.171, создание таблиц осуществлено с помощью SQL-сценария показанного на рис. 3.174. Вы узнаете, как используя PHP читать базу и вносить в нее данные, и как фильтровать потенциально опасные входные данные.

В теме рассматриваются следующие вопросы:

§ Как работает архитектура Web-баз данных

§ Основные шаги выполнения запросов к базе данных через Web

§ Установка соединения

§ Получение информации о доступных базах данных

§ Выбор базы данных

§ Выполнение запроса к базе данных

§ Получение результатов запроса

§ Отсоединение от базы данных

§ Внесение новой информации в базу данных

§ Обеспечение безопасности базы данных

§ Прочие полезные функции PHP-MySQL

 

Задание 1. Изучение работы архитектуры Web-баз данных

Ранее мы в общих чертах выяснили, как работает архитектура Web-баз данных. Алгоритм работы содержит следующие шаги:

1. Web-браузер пользователя выдает HTTP-запрос определенной Web-страницы. Например, пользователь ищет в таблице BOOKS, все книги, используя HTML-форму (рис. 3.266), исходный код HTML файла Lab15_00.php (рис. 3.267). Страница с результатами поиска будет называться Lab15_01.php (обработчик формы).

2. Web-сервер принимает запрос на Lab15_01.php, извлекает этот файл и передает на обработку механизму РНР.

3. Механизм РНР приступает к разбору сценария. Сценарий содержит команду соединения с базой данных и выполнения запроса (поиска книг). РНР открывает соединение с MySQL-сервером и отправляет соответствующий запрос.

4. Сервер MySQL принимает запрос к базе данных, обрабатывает его и отправляет результат (список книг) обратно механизму РНР.

5. Механизм РНР завершает выполнение сценария, что обычно включает в себя форматирование результатов запроса в HTML файл. После этого результат в виде HTML возвращается Web-серверу.

6. Web-сервер пересылает HTML в браузер, и пользователь имеет возможность просмотреть запрошенный список книг.

База данных MySQL с именем BOOKS создана в предыдущей лабораторной работе, поэтому создадим поисковую HTML форму и подготовим код РНР для обработки формы, чтобы проиллюстрировать шаги алгоритма работы архитектуры Web-баз данных.

Начнем с поисковой HTML формы (рис. 3.266). Код для этой формы показан на рис. 3.267 (http://localhost/php/lab15_00.php).

 

Поисковая страница для базы данных BOOKS:

Рис. 3.266. Начальное содержимое формы (а) и форма с информацией (б).

 

Рис. 3.267. Листинг Lab15_00.php HTML формы для рис. 3.266.

После того как пользователь нажмет на кнопке , вызывается сценарий Lab15_01.php. Все это представлено в листинге (рис. 3.268). Здесь мы рассмотрим, что делает упомянутый сценарий и как он работает.

Рис. 3.268. Листинг сценария обработчика Lab15_01.php формы для рис. 3.266.

 

Lab15_01.php - извлекает результаты запроса в базе данных MySQL и форматирует их для целей отображения.

Если в форму будет введена информация, как показано на рис. 3.266 (б), то результат показан на рис. 3.269.

 

Рис. 3.269. Результат вывода на экран обработчика Lab15_01.php

 

Если пользователь в качестве аргумента поиска укажет символ “М” (рис. 3.270), то результат показан на рис. 3.271.

Рис. 3.270. Исходные данные для обработчика Lab15_01.php

 

Рис. 3.271. Результат вывода на экран обработчика Lab15_01.php