Тема № 14. PHP и MySQL. Доступ к базе данных MySQL из Web с помощью РНР
Тема № 14. PHP и MySQL. Доступ к базе данных MySQL из Web с помощью РНР - раздел Программирование, Инструментальная среда PHPMYADMIN. Создание баз и таблиц данных Цель Работы:Получение Практических Навыков По Связке Mysql И...
Цель работы:Получение практических навыков по связке 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
Предисловие... По дисциплине предусмотрено выполнение лабораторного практикума Тематика... Студентам разрешается использовать любую современную СУБД поддерживающую принципы реляционного описания данных и язык...
Производительность
Результаты тестов Вы сможете найти по адресу http://www.mysql.com/information/benchmarks.html
Вставка 350768 строк
Секунды
my
Описание установки
Для того чтобы временно (для отладки) использовать свою машину как удаленный сервер, необходимо на машине установить Web-сервер Apache. Для установки программного обеспечения обеспечивающего взаимо
Порядок выполнения работы
Чтобы не было проблем при инсталляции, выполните с командной строки программу Ping
Рис. 1.1. Использование командной стро
Указания к выполнению работы
При выполнении тестов необходимо изучить структуру пакета и порядок взаимодействия его блоков, уяснить отличия использования пакета от реального его использования в сетевом окружении и причины этих
Основные сведения
Указав в Internet Explorer адрес (рис. 2.1), мы попадаем в оболочку (рис. 2.2) (адрес зависит от версии Denwer), в которой в поле ввода необходимо указать имя создаваемой базы. Пусть для примера мы
Программа работы
Приступим к заполнению информацией созданной таблицы.
Напомним, что первая строка с именем id (рис. 2.11) заполняется автоматически, так как ранее для нее указано ограниче
Основные сведения
Прежде чем использовать базу данных, необходимо создать пользователей базы данных, которые могут к ней обращаться. Это делается следующим образом. Перейдите к началу процесса (
Программа работы
Прежде чем тестировать связь с созданной Вами базой данных, выполните следующие действия:
Шаг 1. Создайте копию из файла index.php в этой же папке с именем index0.php.
Проверка моего домена с именем Moy.loc
Шаг 4. Находясь на выделенном файле в Total Commander нажмите клавишу F4 (Редактировать) и Вы должны увидеть полный текст программы, показанный на шаге 2.
Т
Указания к выполнению работы
Если Вы не получили окно показанное на рис. 2.31, а получили что-то подобное, как показано например, на рис. 2.32, то Вы скорее всего скопировали в файл index.php информацию из рис. 2.30, что не ре
Тема №5. Использование управляющей структуры switch
Цель работы:Обучение применению структуры switch.
Задание 1. Разработать приложение с использованием конструкции SWITCH-CASE, в котором создается форма для простого кальку
Тема №7. Работа с массивами
Цель работы:Обучение использованию массивов в сценариях PHP.
Массив представляет собой набор переменных, объединенных одним именем. Каждое значение массива идентифицируетс
Тема №8. Функции в сценариях РНР
Цель работы:Получение навыков по применению функций в PHP при обработке сценариев.
При помощи функций можно создавать компоненты многократного использовани
Определение и вызов функций
Определить новую функцию в PHP несложно. Функции могут создаваться в любой точке программ PHP, однако по соображениям структурной организации кода удобнее разместить все функции, ис
Тело функции
}
Рис. 3.97. Синтаксис функций .
Имя функции должно подчиняться условиям, приведенным для идентификаторов. После имени функции следуют обязательны
Создание сценария загрузки.
Перед началом создания сценария запомните список переменных, которые создаются автоматически после успешной загрузки файла. Основная часть имени переменных - myfile - является имене
Загрузкa файла с помощью формы и сценария
Теперь, когда вы создали форму и сценарий для загрузки файла, проверим, как все это работает.
Запустите свой Web-браузер, в поле ввода Адрес введите
Тема №11. Создание панели управления файлами
Цель работы:Получение практических навыков по обработке файлов в сценариях.
Задание 1. Разработать форму и сопутствующее ей приложение для панели управления
Rem Cmysql.bat Input in MySQL Запуск с любого диска
c:\Webservers\usr\local\mysql5\bin\mysql --user=root --character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets"
Рис. 3.162. Командный файл Cmysql.bat д
City char(30) not null)
Рис. 3.167. Состав таблицы Customers.
Создание таблицы производится с помощью SQL-команды
CREATE TABLE,которая указывается в строке монитора.
Rem Hmysql.bat Запуск с любого места диска
c:\Webservers\usr\local\mysql5\bin\mysql -h localhost -u root -D books -p --character-sets-dir="c:\Webservers\usr\local\mysql5\share\charsets" < lab13_00.sql
SET NAMES cp866;
select * from customers;
select * from orders;
select * from books;
select * from order_items;
SELECT name, city FROM customers ;
запрашивает данные столбцов name (имя) и city (город) таблицы Customers:
Если воспользоваться монитором MySQL (вызов через пакетный файл CmySql.bat - рис. 3.188), то ввод н
Простое соединение двух таблиц
Начнем с поиска Ян Дрибас, которого мы уже упоминали:
Рис. 3.236. Результат запроса с использованием соединения таблиц.
Соединение трех и более таблиц
Объединение более двух таблиц не сложнее объединения двух. Главное правило таково — таблицы нужно объединять попарно, учитывая условия объединения. Это можно представить в виде отношений данных меж
From customers left join orders
on customers.customerid = orders.customerid;
Рис. 3.239. Запрос с левосторонним соединением.
Данный запрос SQL использует объединение по остатку д
Where orders.orderid is null;
Рис. 3.243. Запрос левостороннего соединения таблиц Customers и Orders с использованием using.
И вот результат:
Резюме по типам соединениий
Мы рассмотрели только самые основные, хотя существуют еще несколько соединений, представленных в таблице на рис. 3.250.
Название
Опис
Group by customerid;
При использовании конструкции GROUP BY с функцией агрегирования это фактически меняет поведение функции. Вместо того чтобы выдавать среднюю величину заказов в таблице, такой запрос
Update customers
set address = 'ул. Победы д.7, кв.7'
where customerid = 4;
Так, например, состояние таблицы показанное на рис. 3.248 будет приведено к виду предс
Установка соединения
Для подключения к серверу MySQL в сценарии (рис. 3.268) присутствует такая строка:
@ $db = mysql_pconnect($Host, $User, $Password);
Потребуется указать имя узла (H
Выполнение запроса к базе данных
Чтобы осуществить запрос, можно воспользоваться функцией mysql_query(). Однако прежде запрос необходимо настроить:
Получение результатов запроса
Разнообразие функций дает возможность получить результат различными способами. Идентификатор результата — это ключ доступа к строкам, возвращенным запросом, которых может быть нуль, одна и более.
Отсоединение от базы данных
Для закрытия (уничтожения) результирующего набора применяется метод:
При процедурном подходе используется функция:
Настройка сервера
Вы считаете что все сделали правильно, но у Вас что-то не работает. Может, у Вас неправильно сконфигурирован сервер?
Если Вы "все сделали правильно", но Ваш код н
Коротко о правах на файлы
Проблемы с правами на сервере (upload_tmp_dir)
В *nix-подобных операционных системах каждой папке, файлу, ссылке выставлены соответствие права доступа. Они могут выглядеть как rwx-rw-r- ил
Хотите получать на электронную почту самые свежие новости?
Подпишитесь на Нашу рассылку
Наша политика приватности обеспечивает 100% безопасность и анонимность Ваших E-Mail
Новости и инфо для студентов