Практическая работа №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. С помощью формы ведите информацию о новой книге, просмотрите полный список книг, проверьте правильность внесенных данных.