ЛАБОРАТОРНАЯ РАБОТА №4
РАБОТА С БАЗАМИ ДАННЫХ. ПРОГРАММИРОВАНИЕ БАЗ ДАННЫХ НА ЯЗЫКЕ PHP
Цель работы: Ознакомиться с созданием таблиц баз данных и конструкциями языка PHP, предназначенными для работы с базами данных.
Теоретические сведения
Создание базы данных MySQL и таблиц
Предположим, что имеется текстовый файл, содержащий список товаров, которые продаются организацией. Можно написать PHP-сценарий, который для построчного считывания списка товаров многократно вызывает функцию fgets(). Затем, после каждого очередного считывания, вызывается инструкция echo или встроенная функция print(). В результате будет создана Web-страница, содержащая список предлагаемых товаров. Таким образом, РНР и текстовые файлы можно использовать для создания содержимого Web-страницы на лету. В приведенном примере Web-страница с перечнем предлагаемых товаров не существует, пока посетитель не вызовет PHP-страницу со сценарием, генерирующим список товаров.
База данных SQL, как и текстовый файл, представляет собой всего лишь набор данных. Тем не менее, в отличие от текстовых файлов, в которых приложения хранят данные в виде неструктурированных фрагментов, СУБД управляет всеми операциями с данными в базе данных SQL и организует данные оптимальным образом для обеспечения быстрого и легкого доступа к данным и манипулирования ими.
Поиск по текстовому файлу, содержащему несколько тысяч пар имен пользователей и паролей, занимает недопустимо длительное время. В то же время СУБД позволяет выполнить поиск такого же объема (среди десятков тысяч записей) в течение долей секунды. Поэтому СУБД дает возможность вывести на экран список товаров или одного товара (выбранного из длинного списка) гораздо быстрее, чем при использовании текстового файла со списком товаров.
РНР содержит встроенные функции, которые позволяют не только считывать, но и редактировать данные, хранящиеся в нескольких наиболее популярных базах данных, в частности DB2, FrontBase, Informix, InterBase, mySQL, MS SQL Server, MySQL, Oracle, ODBC, PostgreSQL и Sybase. Для определения форматов баз данных, доступных для использования в PHP-сценариях, нужно связаьбся со своим Internet-провайдером или администратором баз данных.
Если не установлена поддержка ни одной СУБД, разработчика может заинтересовать MySQL.
MySQL представляет собой многопользовательскую СУБД, которую можно бесплатно загрузить и установить из сайта http://www.MySQL.com. Эта СУБД поставляется как для платформы Windows, так и для Unix.
Независимо от типа используемой СУБД, для хранения таблиц, которыми будут пользоваться PHP-сценарии, необходимо создать базу данных.
Для создания базы данных нужно воспользоваться SQL-командой CREATE DATABASE, синтаксис которой следующий:
CREATE DATABASE <имя базы данных>;
Предположим, необходимо создать базу данных, в которой будут содержаться таблицы данных, используемых в примерах данной книги. В качестве имени базы данных можно выбрать слово «Товары». Таким образом, для создания базы данных с таблицами для примеров данной книги необходимо выполнить следующую команду SQL:
CREATE DATABASE `Товары`;
После создания базы данных необходимо создать таблицы, в которых будут храниться данные. Каждая таблица состоит из строк связанных данных, организованных в виде столбцов. Каждая строка (иногда, хотя и несколько неточно, называемая записью) содержит связанные между собой элементы данных. Например, при необходимости создания базы данных для хранения таблиц с товарами каждая строка в таблице будет содержать поля с кодом товара, его названием, нормой отпуска товара в одни руки и ценой единицы товара. Для создания такой таблицы необходимо выполнить следующую команду SQL:
CREATE TABLE `Товары`.`Продукты`(
`код_продукта` INT (11) DEFAULT NULL,
`название` VARCHAR (40) DEFAULT NULL,
`норма_отпуска` INT (11) DEFAULT NULL,
`цена_за_единицу` DOUBLE DEFAULT NULL
)
TYPE = MYISAM;
Синтаксис команды CREATE TABLE имеет следующий вид:
CREATE TABLE <имя таблицы>
(<имя столбца><ТИП столбца> [<список атрибутов столбца>], …
<имя последнего столбца> <тип последнего столбца>
[<список атрибутов последнего столбца>])
Очевидно, что таблица должна содержать данные, которые в нее можно записать с помощью SQL-команды INSERT, например, для вставки семи продуктов в таблицу «Продукты» можно выполнить следующие команды INSERT:
USE `Товары`;
INSERT INTO `Продукты` VALUES (1, 'Продукт 1', 100, 258.23);
INSERT INTO `Продукты` VALUES (2, 'Продукт 2', 200, 1844.51);
INSERT INTO `Продукты` VALUES (3, 'Продукт 3', 300, 855.15);
INSERT INTO `Продукты` VALUES (4, 'Продукт 4', 200, 891.56);
INSERT INTO `Продукты` VALUES (5, 'Продукт 5', 100, 1844.51);
INSERT INTO `Продукты` VALUES (6, 'Продукт 6', 600, 567.01);
INSERT INTO `Продукты` VALUES (7, 'Продукт 7', 250, 675.28);
Синтаксис команды INSERT выглядит следующим образом:
INSERT INTO <имя таблицы>
VALUES {значение1, значение2,..., значениеN);
Для использования имеющихся таблиц базы данных СУБД нужно передавать запросы в виде SQL-операторов SELECT. Например, для считывания характеристик продуктов из созданной выше таблицы нужно воспользоваться следующей командой:
SELECT * FROM `Товары`.`Продукты`
Далее будет показано, каким образом в PHP-сценариях выполняются запросы на считывание SQL-таблиц.
Создание базы данных в программе "dbForge Studio for MySQL"
В меню «База данных» выбрать подменю «Новое соединение…» и в появившемся диалоговом окне "Свойства соединения базы данных", ввести данные:
Хост:localhost
Имя:root
Пароль:password
С помощью подменю «Новая база данных…» создать новую базу данных, задав ее имя. Затем в Проводнике найти нужную БД, открыть список "Таблицы", выбрать в выпадающем меню "Новая таблица".
Добавление нового столбца в таблице - в поле "Столбцы" в выпадающем меню выбрать пункт "Новый столбец".
Для добавления записей перейти на вкладку "Данные".