
- •Базы данных Методические указания к выполнению лабораторных работ
- •Методические указания к выполнению лабораторных работ Предисловие
- •Библиографический список
- •Лабораторная работа № 1 Тема №1. Инсталляция MySql и создание локального сервера
- •1. Цель работы
- •2. Основные технические возможности
- •3. Описание установки
- •4. Порядок выполнения работы
- •5. Содержание отчета
- •Тема №2. Инструментальная среда phpmyadmin
- •5. Указания к выполнению работы
- •6. Содержание отчета
- •Лабораторная работа № 2 Тема №1. Создание баз и таблиц данных
- •1. Цель работы
- •2. Основные сведения
- •3. Программа работы
- •Тема №2. Создание пользователей базы данных
- •3. Программа работы
- •00 Проверка моего домена с именем Moy.Loc
- •4. Указания к выполнению работы
- •5. Содержание отчета
- •Лабораторная работа № 3 Программирование с использованием php и MySql
- •1. Цель работы
- •2. Основные сведения
- •3. Указания к выполнению работы
- •4. Содержание отчета
- •5. Примеры реализации тем Тема №1. Создание форм
- •Задание 1. Разработать html-форму с переключателями
- •Задание 2: Разработать html-форму с методом Post
- •Тема №2. Передача значений переменным в сценариях php. Использование возможностей метода get без html-формы для передачи значений переменных в сценариях php
- •Тема №3. Создание формы и рнр-сценария в одном файле
- •Задание 1: Получение данных из текстового поля
- •I курсив
- •Тема №4. Использование чисел. Управляющие структуры
- •Тема №5. Использование управляющей структуры switch
- •Тема № 6. Использование регулярных выражений в сценариях рнр
- •Проверка ошибок
- •Задание 1. Вывод информации о ошибочно заполненных полях формы
- •Задание 2. Использование функций пользователя для контроля полей формы
- •Задание 3. Проверка ограничений в текстовом поле. Lab6_0_2.Php
- •Задание 4. Специфика имени пользователя. Lab6_0_3.Php
- •Задание 5. Специфика имени пользователя с помощью JavaScript. Lab6_0_4.Php
- •Тема №7. Работа с массивами
- •Задание 1. Означивание массива и вывод на экран. Lab7_0.Php.
- •Задание 4. Сортировка массива. Lab7_3.Php.
- •Тема №8. Функции в сценариях рнр
- •Задание 1. Вложенные функции. Lab8_0_0.Php
- •Задание 2. Объявление функций внутри других функций. Lab8_0.Php
- •Задание 3. Возврат значений функцией. Lab8_1.Php
- •Задание 4. Возврат нескольких значений функцией. Lab8_2.Php
- •Задание 5. Возвращение функцией нескольких величин. Lab8_3.Php
- •Задание 6. Рекурсивные функции . Lab8_4.Php
- •Задание 7. Функции-переменные. Lab8_5.Php
- •Задание 8. Построение библиотек функций. Lab8_6_0.Php.
- •Задание 9. Построение шаблона сайта. Lab8_7_0.Php.
- •Тема №9. Использование файлов для хранения данных в сценариях рнр
- •Создание сценария загрузки.
- •Задание 3. Сохранение пользовательских данных в текстовом файле Lab9_5.Php
- •Задание 4. Сохранение пользовательских данных в текстовом файле Lab9_6_0.Php
- •Тема № 10. Работа с каталогами в сценариях рнр
- •Тема №11. Создание панели управления файлами
- •Задание 1. Разработать форму и сопутствующее ей приложение для панели управления файлами.
- •Тема № 12. Работа с базой через монттор MySql и PhpMyAdmin
- •Задание 1. Создать базу данных через командную строку
- •Задание 3. Вставка данных в базу данных
- •Задание 4. Создание командных файлов и файлов сценариев для вставки данных в базу данных.
- •Тема № 13. Извлечение данных из базы данных
- •Задание 1. Оператор выборки данных select
- •Задание 2. Извлечение данных по определенному критерию
- •Задание 3. Извлечение данных из нескольких таблиц
- •Задание 4. Поиск несоответствующих строк
- •Задание 5. Использование псевдонимов имен таблиц (as)
- •Задание 6. Извлечение данных в определенном порядке
- •Задание 7. Группировка и агрегирование данных
- •Задание 8. Обновление записей в базе данных (update)
- •Задание 10. Удаление записей, таблиц и базы данных (delete)
- •Тема № 14. Php и MySql. Доступ к базе данных MySql из Web с помощью рнр
- •Задание 1. Изучение работы архитектуры Web-баз данных
- •Задание 2. Проверка и фильтрация данных, исходящих от пользователя. Использование объектно-ориентированного синтаксиса php
- •Задание 3. Внесение новой информации в базу данных. Проверка и фильтрация данных, исходящих от администратора
- •Задание 4. Создание и удаление баз данных
- •191186, Санкт-Петербург, ул. Миллионная, 5
Тема №2. Создание пользователей базы данных
1. Цель работы
Создание пользователей и определение их привилегий.
2. Основные сведения
Прежде чем
использовать базу данных, необходимо
создать пользователей базы данных,
которые могут к ней обращаться. Это
делается следующим образом. Перейдите
к началу процесса (
).
Ниже на рис. 2.21. показана часть окна из
рис. 2.2, в которой присутствует вкладка
“Привилегии”.
Рис. 2.21. Создание пользователя из базы данных.
Используя эту
вкладку (пункт-
,
рис. 2.21) мы получаем следующее окно для
создания пользователей базы данных
(рис. 2.22).
Рис. 2.22. Создание пользователя из базы данных.
Используя функцию “Добавить нового пользователя” (рис. 2.22) происходит переход к окну, где необходимо определить пользователя и что ему разрешено делать с указанной базой данных. Окно выглядит следующим образом (рис. 2.23).
Рис. 2.23. Создание пользователя базы данных.
В поле “Имя пользователя” (рис. 2.23) вводится латинскими буквами, например, “people”. В поле “Xost” указывается, например,”localhost”, что обозначает для данного пользователя доступ к базе данных с локальной машины и указывается его пароль (который дублируется в поле с именем “Подтверждение”). В нижней части открываем привилегии (вскидываем галочки) для опций доступных данному пользователю в базе данных My_base. Таким образом, экран показанный на рис. 2.23 приобретает вид (рис. 2.24).
Примечание. Для дальнейших примеров, пусть для пользователя использован (введен) пароль “12345”
Рис. 2.24. Создание пользователя базы данных и указание его привилегий.
Реакция системы будет следующей, если будет нажата кнопка “Пошел” (рис. 2.25) и пользователь будет зарегистрирован для доступа к базе данных.
Рис. 2.25. Создание и регистрация пользователя базы данных.
После получения прав доступа необходимо протестировать базу данных. Для этого необходимо закрыть базу (Stop Denwer – двойной клик) и перейти в папку C:\WebServers\home\moy.loc\www\index.php (рис. 2.26), где хранится Ваш скрипт, содержащий PHP код (рис. 2.27). Папка создана в момент установки собственного сервера (лекция описывающая создание сервера на Вашей машине).
Рис. 2.26. Папка, где хранится программа.
3. Программа работы
Прежде чем тестировать связь с созданной Вами базой данных, выполните следующие действия:
Шаг 1. Создайте копию из файла index.php в этой же папке с именем index0.php.
Шаг
2. Модифицируйте в index.php
3-ю строку (вставили символы 00) и сохраните
его. На нижнем рисунке использован
редактор
<html>
<body>
<p> 00 Проверка моего домена с именем Moy.loc </p>
<? echo "Проверка вставки PHP кода в содержимое HTML" ?>
</body>
</html>
Рис. 2.26a. Модифицированная программа.
Этот запасной файл (index0.php) поможет Вам при последующих тестах.
Шаг 3. Находясь на выделенном файле в Total Commander нажмите клавишу F3 (Просмотр) и Вы должны увидеть только одну строку:
00 Проверка моего домена с именем Moy.Loc
Шаг 4. Находясь на выделенном файле в Total Commander нажмите клавишу F4 (Редактировать) и Вы должны увидеть полный текст программы, показанный на шаге 2.
Теперь необходимо модифицировать файл Index.php и вставить в него операторы языка PHP для обращения к хранимой информации (рис. 2.29) в таблице Lessons базы данных My_Base.
<html>
<body>
<p> Проверка моего домена с именем Moy.loc </p>
<? echo "Проверка вставки PHP кода в содержимое HTML" ?>
</body>
</html>
Рис. 2.27. Текст программного кода файла index.php до модификации.
Запустите
сервер
и укажите в адресной строке http://moy.loc/.
Рис. 2.28. Сайт до модификации на основе кода файла index.php из рис. 2.26а.
Не закрывая сервер, модифицируйте файл index.php. Вставьте, например, в 3-й строке слово NEW и сохраните его. Нажмите кнопку “Обновить” в браузере
Рис. 2.29. Обновление файла index.php без перезагрузки сервера.
Рассмотренный прием позволяет экономить Ваше время при отладке программ.
Ниже (рис. 2.30) приводится текст модифицированной программы из рис. 2.27 и результат запроса (рис. 2.31) к базе данных My_base на основании встроенного PHP кода (строки 6-12). Для учебных целей строки программы пронумерованы и физически они в файле index.php не присутствуют.
В отличие от кода представленного на рис. 2.27, в программе на рис. 2.30 присутствует встроенный PHP код и интерпретируемые операторы обращения к базе данных. Заметим, что сам язык SQL (а точнее его диалект для СУБД MySQL) не имеет никакого отношения ни к языку HTML, ни к языку PHP.
1 <html>
2 <body>
3 <p> NEW Проверка моего домена с именем Moy.loc </p>
4 <? echo "Проверка вставки PHP кода в содержимое HTML" ?><br>
5
6 <?
7 $db = mysql_connect("localhost","people","12345");
8 mysql_select_db ("my_base",$db);
9 $result = mysql_query ("SELECT * FROM lesonss ", $db);
10 $num = mysql_num_rows ($result);
11 echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";
12 ?>
13
14 </body>
15 </html>
Рис. 2.30. Модифицированный текст программного кода файла index.php.
Примечание. Не копируйте содержимое из рис. 2.30 в файл index.php. В том рисунке в тексте есть грамматическая ошибка.
Теперь, если в адресной строке браузера указать адрес http://moy.loc/ , то используя файл hosts система сформирует новое содержимое сайта, которое должно быть как показано на рис. 2.31, если Вы не получили подобное изображение, то посмотрите на рис. 2.32.
Рис. 2.31. Сайт после модификации на основе кода файла index.php.
Внимание ! Так должно быть. Но ! Ошибка будет раскрыта далее!
Поясним некоторые строки (рис. 2.30) кода языка PHP встроенные в язык HTML, позволяющие обратиться к базе данных MySQL и обратиться к хранимой в ней таблице Lessons для подсчета количества лекций хранимых в этой таблице.
Шестая и двенадцатая строка является стандартом, указывающим интерпретатору, что все расположенное между этими строками относится к языку PHP.
Седьмая строка (рис. 2.30)
$db = mysql_connect("localhost","people","12345");
осуществляет соединение с СУБД MySQL для пользователя с именем "people", имеющего пароль "12345". Первый параметр функции "localhost", указывает, что информация должна браться с текущего (локального) компьютера. Успешность соединения с сервером СУБД MySQL фиксируется в переменной (идентификаторе) $db.
Восьмая строка, используя встроенную функцию языка PHP
mysql_select_db ("my_base", $db);
позволяет обратиться к базе данных с именем "my_base", используя идентификатор $db.
Девятая строка (рис. 2.30), используя встроенную функцию языка PHP mysql_query
$result = mysql_query ("SELECT * FROM lesonss ", $db);
реализует запрос к таблице lessons базы данных на основе оператора языка SQL SELECT. Этот первый параметр (обязательно в двойных ковычках) является конструкцией языка SQL. Вторым оператором функции является идентификатор $db. Результат работы функции фиксируется в переменной с именем $result , которая по своей структуре является двумерным массивом.
Деcятая строка, используя встроенную функцию языка PHP mysql_num_rows
$num = mysql_num_rows ($result);
подсчитывает число строк в массиве $result , т.е. фактически определяет, сколько записей хранится в таблице lessons.
Одиннадцатая строка, используя встроенную функцию языка PHP echo
echo "Всего лекций в базе My_base, в таблице Lessons пока - $num";
обеспечивает вывод сообщения на экран. Внутри этого сообщения могут быть использованы объявленные в теле программы переменные. В нашем случае такой переменной является переменная $num.
Пятая и тринадцатая строка в тексте программы (рис. 2.30) вставлены для читаемости текста. В четвертой строке использован тег переноса <br>, который заставляет осуществлять вывод последующей информации с новой строки экрана.