Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Без имени 1.doc
Скачиваний:
39
Добавлен:
24.11.2019
Размер:
7.67 Mб
Скачать

Тема №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>, который заставляет осуществлять вывод последующей информации с новой строки экрана.