Практическая работа №7

advertisement
Практическая работа №7
Тема: Создание БД MySQL. Доступ к БД MySQL из Web с помощью PHP.
В PHP5 имеется новая библиотека для подключения MySQL, называемая mysqli (i – означает “imported” –
“улучшенная”).Эта библиотека рассчитана на работу с MySQL 4 и более поздними версиями
Установка соединения:
Для соединения с сервером MySQL служит следующая строка сценария:
$db=mysqli_connect ('имя хоста', 'имя пользователя','пароль','имя БД')
По умолчанию в качестве пароля используется root. Если использование пароля на предусмотрено, то
позиция 'пароль' просто не заполняется. Например
$db=mysqli_connect ('имя хоста', 'имя пользователя',' ','имя БД')
Результат попытки подключения должен быть проверен, поскольку остальной код в случае неудачного
подключения работать не будет. Проверка осуществляется с помощью кода:
if (mysqli_connect_errno())
{
echo 'Ошибка: не удалось установить соединение с базой данных.
Пожалуйста, повторите попытку позже';
exit;
}
Выполнение запроса к базе данных:
Чтобы осуществить запрос необходимо воспользоваться функцией mysqli_query(). Однако, прежде всего
этот запрос необходимо построить следующим образом:
$имя_переменной="select*from имя_объекта". Например:
$query="select*from book".
Причем в качестве объекта может использоваться как вся БД, так и отдельная таблица.
Таким образом, команда запроса будет выглядеть следующим образом:
mysqli_query(имя_соединения_с_БД, текст_запроса).
Результат выполнения запроса также должен быть сохранен в некоторую переменную:
$result=mysqli_query($db, $query)
Получение результатов запроса:
Существует множество функций, которые позволяют различными способами извлекать нужные
фрагменты из объекта или идентификатора результата. Объект или идентификатор результата – это ключ
доступа к возвращенным запросом строкам.
Для получения количества возвращенных строк используется функция mysqli_num_rows(), которой
необходимо передать идентификатор результата:
$num_results=mysqli_num_rows($result)
Эта информация весьма полезна, если планируется обрабатывать или отображать результаты. Знание
количества строк позволяет организовывать цикл по ним:
for ($i=0; $i<$num_results; $i++)
{
// обработка результатов
}
При каждом выполнении такого цикла происходит вызов функции mysqli_fetch_assoc. Цикл не будет
выполняться при отсутствии возвращенных строк. Именно эта функция извлекает каждую строчку из
результирующего набора и возвращает ее ввиде массива, в котором каждый ключ является именем
атрибута, а каждое значение – соответствующим значением:
$row=mysqli_fetch_assoc($result)
Имея массив $row, можно пройти по всем полям и должным образом отобразить каждое из них:
echo '<tr><td>'.$row['Имя поля']. '</td></tr>'
Отсоединение от БД:
Освобождение результирующего набора выполняется следующим образом:
mysqli_free_result($result)
Затем можно закрыть соединение с БД:
mysqli_close($db)
Ход работы:
1.
Для сохранения файлов практической работы № 7 в localhost\www\Book создайте папку с именем 7.
2.
Создайте базу данных с помощью панели управления базой данных MySQL – phpMyAdmin:

запустите стартовую станицу панели phpMyAdmin из каталога web\home\localhost\www\Tests\phpMyAdmin;

создайте новую базу данных с именем books;

создайте таблицу и именем book, количеством
полей 4;

задайте характеристики
согласно таблице;

полей
таблицы,
сохраните созданные поля, просмотрите текст
выполненного sql-запроса.
Тип
Длина
Обязатель.
Id_book
char
13
not null
Author
char
50
ФИО автора
Title
char
100
название
Price
float
6,20
цена
3.
Проверьте наличие папки books с файлами
созданной БД в каталоге web\usr\local\mysql5\data.
4.
Заполните, созданную таблицу базы данных с помощью sql-запроса:
5.
Признак
ключа
Поле
первичный
Комментарии
код книги

просмотрите текст sql-запроса Y:\В-41 В-42\ПОКС …\ book_insert.sql;

в окне phpMyAdmin вызовите окно sql-редактора, выполните запрос, загрузив из файла book_insert.sql;

просмотрите результат, выполнив обзор таблицы book в окне phpMyAdmin.
Создайте файл preview.php для организации просмотра данных из таблицы book, в котором:

выведите заголовок – Полный список книг;

установите соединение с хостом – localhost, с использованием имени root, без пароля, с использованием базы
данных books, результат сохраните в $db;

выполните проверку подключения, в случае неудачи, выведите сообщение (Не удалось установить
соединение с базой данных!) и прервите работу сценария;

постройте запрос для вывода всех полей таблицы book и сохраните текст запроса в переменную $query (при
необходимости проверьте правильность запроса в sqlредакторе phpMyadmin);

выполните запрос, результат сохраните в $result;

определите и выведите количество найденных записей
$num_results;

с помощью цикла организуйте вывод записей БД в таблице
(см рис)

очистите результат запроса, закройте соединение с базой данных.
6.
Проверьте работу сценария.
7.
Для добавления сведений о новой книге создайте форму ввода по образцу,
сохраните с именем newbook.html
8.
В коде сценария preview.php разместите кнопку Добавить, при нажатии на
которую загружается форма ввода новой книги;
9.
Данные из формы передать php-сценарию insert_book.php, в котором:

Создайте короткие имена переменных для работы с полями формы;

установите соединение с БД;

постройте и выполните запрос для добавления в таблицу полей
id_book
author
title
price
$query="insert into book values (' ".$id_book." ', ' ".$author." ', ' ".$title." ', ' ".$price." ')"

сообщите о том, сколько книг было добавлено в БД
echo mysqli_affected_rows($db).'книг (и, а) добавлено в базу данных.'

очистите результат запроса, закройте соединение с базой данных.
10. С помощью формы ведите информацию о новой книге, просмотрите полный список книг, проверьте
правильность внесенных данных.
Download