Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Разработка web-приложений. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
12.08.2026
Размер:
1 Мб
Скачать
☆

можно выделить такие модули, как селекторы, фоновые изображения, текстовые эффекты и т. д.

3.Обеспечение поддержки web-шрифтов, 2D-, 3D-преобразований,

атакже переходов и анимаций. Данные элементы служат для более яркого и технически сложного представления контента и позволяют визуально менять оформление страниц.

4.Новые цвета и эффекты изображения. Версия стандарта CSS3 обеспечивает реализацию моделей цветов RGBA (Red, Green, Blue, Alpha),

HSL (Hue, Saturation, Lightness), HSLA (Hue, Saturation, Lightness, Alpha),

атакже цветов градиента.

5.Настройка размеров элементов без учета отступов и границ. Данная настройка поддерживается за счет свойства box-sizing.

Таким образом, CSS3 является новым стандартом оформления webдокументов, расширяющим возможности предыдущих версий. Поддержку новых функций можно наблюдать в различных версиях современных браузеров. Тенденция развития CSS3 ведет к повышению уровня взаимодействия с браузерами и более глубокой визуализации элементов.

КОНТРОЛЬНЫЕ ВОПРОСЫ

1.Что представляют собой каскадные таблицы стилей?

2.Что позволяют определить правила CSS?

3.Что такое селектор?

4.Перечислите основные правила CSS.

5.Назовите преимущества использования каскадных таблиц стилей.

6.Приведите примеры трудностей, которые могут возникнуть при работе с каскадными таблицами стилей.

7.Назовите типы, по которым можно классифицировать стили, применяющиеся к одному документу.

8.Чем отличается стиль браузера от стиля автора?

34

9.Как выглядит общая схема CSS?

10.Перечислите основные свойства CSS.

11.Какие версии предшествовали стандарту CSS3?

12.Назовите три принципа, согласно которым следует применять

CSS3.

13.Перечислите достоинства и недостатки технологии JavaScript.

14. Перечислите достоинства и недостатки платформ Flash

иSilverlight.

15.Каким образом в CSS3 подключаются сложные шрифты?

16.Какие типы файлов получили распространение при работе с брау-

зерами?

17.В чем заключается особенность модульного кода?

35

3. ВОЗМОЖНОСТИ И ОСОБЕННОСТИЯЗЫКА PHP

3.1.ВВЕДЕНИЕ В ЯЗЫКPHP

Изначально язык PHP (Hypertext Preprocessor) был создан в качестве технологии для решения задач практического применения. Разработчиком являлся Расмус Лердорф, который для решения тривиальной задачи написал CGI-оболочку (Common Gateway Interface – общий интерфейс шлюзов) на языке Perl, которая, по сути, являла собой набор скриптов, имеющий строгое назначение – сбор конкретных данных. Позже стало понятно, что CGI-оболочка не является достаточно эффективной, поэтому она была переписана на языке C. Вместе с этим исходные коды были представлены для всеобщего обсуждения и исправления ошибок. Так пользователи сервера, где был размещен ресурс с самой первой версией PHP, стали использовать ее, и по истечении некоторого времени PHP стал автономным проектом.

В 1995 году появилась первая признанная версия инструмента, которая носила имя Personal Home Page Tools (Средства для персональной домашней страницы) [13]. К данным средствам относились анализатор кода, обученный на понимание некоторых команд, а также набор утилит, предназначенный для работы с гостевой книгой, счетчиком посещений, форумом и т. д. По итогам достаточно удачного старта первой версии продукта к середине 1995 года распространение получила вторая версия PHP/FI

(Personal Home Page / Forms Interpreter – персональная домашняя страница /

интерпретатор форм) [13]. Усовершенствованная версия поддерживала базовые возможности языка PHP, заключающиеся в обработке форм и HTML-кода.

Следом, в ноябре 1997 года, был опубликован релиз PHP/FI 2.0, существовавший до этого лишь в бета-версии. Вскоре вышла и альфа-версия PHP 3.0. Альфа-версия претерпела значительные изменения; создатели PHP 3.0 признали PHP 3 преемником PHP/FI, вследствие чего доработка PHP/FI прекратилась. Достоинством языка PHP 3.0 являлось свойство

36

расширения ядра, что и привлекло большинство разработчиков. Помимо этого, PHP 3.0 позволял осуществлять эффективное взаимодействие с базами данных и протоколами. Синтаксис языка был масштабно доработан, что привело к усилению функциональных возможностей и преобразованию внутренней структуры. Вскоре было изменено и само имя языка:

внем не акцентировалось внимание на персональном использовании.

В1998 году статистика отражала факт использования PHP десятками тысяч пользователей. Параллельно были поставлены задачи модификации ядра PHP с целью повышения производительности работы приложений высокого уровня сложности и усовершенствования модульности кода. Модифицированное ядро получило название Zend Engine. Версия PHP 4.0 уже работала на ядре Zend Engine, имела ряд исправленных функций, а также позволяла осуществлять сессионную работу, буферизацию вывода и включала в себя несколько новых языковых конструкций.

Выход релиза PHP 5.0 сопровождался преобразованием объектной модели языка, поддержкой XML, добавлением деструктора и др. В шестой версии PHP были исключены глобальные массивы и такие директивы, как

safe_mode, magic_quotes, поскольку они утратили свою актуальность. В то же время в шес той версии появился функционал работы с Юникодом. Несмотря на то, что версия PHP 6.0 включала в себя множество нововведений, в марте 2010 года ее доработка была приостановлена. В настоящее время рабочей версией является PHP 8.0, которая позволяет осуществлять JIT-компиляцию и обеспечивает работу с union-типами.

Современный язык PHP, в первую очередь, ориентирован на задачи, которые решаются посредством применения скриптов, например, обработка данных форм формата html, автоматическая генерация html-страниц

идр. Среди основных сфер применения PHP можно выделить:

1.Разработка приложений (скриптов), исполняющихся на стороне сервера. Для реализации данного класса задач необходимо наличие обработчика php-скриптов (парсера), сервера для обработки скриптов, браузера как элемента проверки результатов работы скрипта и редактора для

37

написания кода. Обработчик скриптов представляется в виде специальной программы или модуля.

2.Разработка скриптов, исполняющихся с помощью командной строки. Речь идет о приложениях, которые работают на конкретной машине (локально). В данном случае необходим только интерпретатор командной строки.

3.Разработка графических интерфейсов (GUI – graphical user interface), выполнение которых осуществляется на стороне клиента. Для создания подобных приложений используется механизм PHP-GTK (специальное расширение PHP).

Таким образом, можно сделать вывод, что сфера применения языка PHP весьма обширна. В то же время сейчас создано большое количество языков, которые нацелены на решение схожих задач. Стоит выделить ряд преимуществ языка PHP:

1.Простота в изучении – для реализации поставленных задач достаточно освоить базовые принципы и правила синтаксиса языка. В сравнении с большинством других языков базовых знаний по PHP будет достаточно для начала работы с небольшими проектами.

2.Поддержка со стороны всех платформ, операционных систем и серверов – обеспечение работы под разными составляющими аппаратнопрограммного комплекса является незаменимым свойством современного языка программирования и характеризует его, в первую очередь, как гибкий инструмент.

3.Сочетание нескольких концепций программирования – объектно ориентированная и процедурная – данное свойство позволяет разработчикам придерживаться более привычного для них стиля работы.

Язык PHP служит средством для создания изображений, файлов формата .pdf, различных роликов; также он имеет функционал для работы

стекстовыми данными, в том числе формата XML, и системой файлов. Еще одним достоинством языка PHP является возможность связи с суще-

38

ствующими серверами с помощью специальных протоколов: LDAP (протокола работы с сетевым оборудованием), SNMP (протокола передачи со-

общений), HTTP

(протокола передачи гипертекста) и др. При работе

с текстом в языке PHP используется инструментарий регулярных выраже-

ний UNIX-систем

(многопользовательских операционных систем). Для

реализации задач, связанных с XML-документами, в рамках PHP приме-

няются стандарты DOM (Document Object Model), SAX (Simple API for

XML), API (American Petroleum Institute).

Как было указано выше, команды и скрипты, созданные на языке PHP, исполняются на стороне сервера. Результат выполнения скрипта отображается в браузере. Следует отметить, что по исходному коду документа достаточно сложно выявить, применялся ли язык PHP для создания данной страницы. Так происходит, потому что все скрипты и команды проходят обработку на сервере, а в браузере появляется уже готовый вариант кода (в частности HTML-код).

Когда речь идет о работе со страницей в формате HTML, браузер работает с разметкой самой страницы согласно строго обозначенным правилам. В том случае, когда осуществляется работа с документом PHP, сначала интерпретатором проводится выполнение кода, данный код преобразовывается в код HTML, после чего браузер работает с полученным кодом в формате HTML и выдает ре зультат. Совместное применение языков HTML и PHP дает ряд преимуществ, которые позволяют представлять наполнение страницы в зависимости от совокупности заданных условий, то есть визуализировать страницы в динамике.

Язык PHP имеет определенные сходства с языками Perl, JavaScript, C#, но зачастую PHP сравнивают с ASP.NET – серверной платформой, имеющей открытый исходный код и позволяющей разрабатывать динамические web-приложения. Детальное сравнение PHP и ASP.NET приведено в табл. 3.1.

39

 

 

 

 

Таблица 3.1

 

Сравнительный анализ технологий ASP.NET и PHP

 

 

 

 

 

№

Критерий

ASP.NET

PHP

 

п/п

сравнения

 

 

 

 

 

 

 

 

 

 

1

Тип технологии

Серверная

web-платформа

Серверный язык сценариев

 

 

 

с открытым кодом

 

 

 

 

 

 

 

2

Сопровождение

Крупные и средние корпо-

Малые и средние web-ре-

 

 

и поддержка

ративные решения

шения

 

 

 

 

 

 

3

Ценовая политика

Учитывается стоимость ли-

Свободный доступ

 

 

 

цензии

 

 

 

 

 

 

 

 

4

Ориентированность

Акцент на реализацию тре-

Акцент на требования кли-

 

 

решений

бований к

безопасности

ента и реализацию пользо-

 

 

 

и функционалу

вательского интерфейса

 

 

 

 

 

 

5

Сообщество

Небольшое количество раз-

Достаточно большое коли-

 

 

 

работчиков

 

чество разработчиков

 

 

 

 

 

 

 

6

Уровень

Высокий

 

Средний

 

 

безопасности

 

 

 

 

 

 

 

 

 

7

Скорость работы

Высокая скорость, в т. ч.

Средняя скорость, не под-

 

 

 

для десктопных приложе-

ходит в полной мере для де-

 

 

 

ний

 

сктопных приложений

 

 

 

 

 

 

8

Гибкость настройки

Низкий уровень гибкости

Средний уровень гибкости

 

 

 

 

 

 

 

Технология PHP имеет достаточно простые принципы работы в сравнении с ASP.NET, поэтому язык PHP является более популярным и, как следствие, более распространенным по отношению к технологии ASP.NET. В то же время данную положительную сторону можно одновременно отнести и к недостаткам технологии PHP, поскольку уровень разработчиков в PHP по статистике ниже, чем в ASP.NET. Среди преимуществ PHP относительно ASP.NET стоит отметить концепцию «низкоуровневости» технологии. Объясняется это тем, что изначально в технологии PHP заложен более логичный подход к проектированию web-приложений. Поскольку ASP.NET представляет собой полноценный фреймворк, он имеет большой

40

набор библиотек, что дает возможность программисту разрабатывать сайт с встроенным функционалом. PHP же можно рассматривать как основу для создания web-сайтов (т. е. чистый язык программирования).

3.2.ОСНОВЫ СИНТАКСИСА ЯЗЫКА PHP. УПРАВЛЯЮЩИЕКОНСТРУКЦИИ

Определение кода PHP в общем коде называется переходом в PHP [1, c. 47] и может осуществляться следующим образом:

1)применение стандартных тегов;

2)применение коротких тегов;

3)применение script-тегов;

4)применение тегов ASP.

Самым популярным способом является использование стандартных тегов, поскольку в таком виде код представлен достаточно наглядно за счет соответствующих символов php и его легко выявить, в случае если на web-странице подключается несколько технологий, например, JavaScript. Пример конструкции с простыми тегами:

<?php print “Привет, это моя страница!”; ?>

Язык PHP достаточно легко встраивается в HTML-код, что, в свою очередь, дает возможность реализовать несколько сценариев PHP. Переменные, используемые в одном сценарии, также могут быть задействованы в других сценариях данной web-страницы.

В PHP применяется два вида комментариев:

1.Однострочные (активно используются в случае, если необходимо показать краткие пояснения).

2.Многострочные (используются при описании алгоритмов).

Оба формата комментариев не влияют на быстродействие сценариев. Однострочные комментарии можно оформить двумя способами: с помощью символов косой черты (слеш) (//) или фунта (хеш) (#). Многостроч-

41

ные комментарии пишутся в стиле языка С с четко определенными границами: /* (начало комментария) и */ (конец комментария).

В языке PHP реализовано несколько основных типов данных:

●целые числа;

●вещественные числа;

●строки;

●массивы;

●объекты;

●логические величины.

Целое число в PHP может быть представлено в десятичной, восьмеричной и шестнадцатеричной системах счисления.

Вещественные числа (или по-другому их называют числа с плавающей запятой) имеют дробную часть – это является их главным отличием от целых чисел. Их необходимо использовать в тех случаях, когда стоит задача показать наиболее точный результат или значение. Язык PHP позволяет работать с двумя типами вещественных чисел: в стандартном формате и научном формате.

Строка в PHP представляет собой некую последовательность символов, которую можно обрабатывать за счет стандартных функций. Размер строки, как правило, имеет ограничение в зависимости от размера памяти. Строки в PHP подразделяют на два типа: границы первого типа строк указываются с помощью кавычек, границы второго типа строк указываются апострофами. Есть несколько основных различий между этими типами,

аименно:

1)имена переменных в строках, которые оформляются кавычками, заменяются определенными значениями; строки в апострофах, наоборот, интерпретируются точно;

2)в строках, где используются кавычки, осуществляется распознавание всех служебных символов, а в строках, заключенных в апострофы, определяются только символы «\\» и «\».

42

Массив в PHP являет собой совокупность элементов одного типа. Идентифицировать элементы массива можно или с помощью индекса в последовательности, или по ключу, который ассоциируется с конкретным значением.

Такой тип данных, как объект, представляет собой переменную, создание экземпляра которой осуществляется по конкретному шаблону (классу).

Логическая величина в PHP может присваивать только два значения: истину (true) и ложь (false). Такие величины применяются в случае, если необходимо проверить выполнение того или иного условия.

Понятие переменная в PHP используется для определения области оперативной памяти, обращение и доступ к которой происходит по конкретному имени. Любые данные, работа с которыми проводится в программе, хранятся в качестве переменных.

Предусмотрено несколько правил задания имен переменных:

1)имя переменной обязательно начинается со знака $;

2)имя переменной может содержать символы латинского алфавита, цифры и знак подчеркивания;

3)при задании имени переменной необходимо учитывать чувствительность регистра;

4)объявление переменной возможно в любом месте листинга, но до места ее первого применения.

Для определения и задания типа переменных в PHP предусмотрено несколько функций, представленных в табл. 3.2.

В языке PHP также реализован оператор присваивания, который дает возможность присвоить переменной некое значение и обладает рядом свойств:

1)переменной можно присвоить значение, возвращаемое функцией, значение другой переменной, значение какого-либо выражения;

2)после окончания работы с временными переменными их следует удалять;

43

3)не всегда возможно провести операцию преобразования типов переменных;

4)во время операции присваивания создается копия переменной с тем же типом переменной.

 

 

Таблица 3.2

 

Функции для работы с переменными

 

 

 

 

№ п/п

Наименование функции

Значение

 

 

 

 

1

is_int($x)

Возвращает значение Истина, если пере-

 

 

is_integer($x)

менная является целым числом

 

 

 

 

 

2

is_double($x)

Возвращает значение Истина, если пере-

 

 

is_float($x)

менная является вещественным числом

 

 

 

 

 

3

is_string($x)

Возвращает значение Истина, если пере-

 

 

 

менная является строкой

 

 

 

 

 

4

is_array($x)

Возвращает значение Истина, если пере-

 

 

 

менная является массивом

 

 

 

 

 

5

is_object($x)

Возвращает значение Истина, если пере-

 

 

 

менная является объектом

 

 

 

 

 

6

is_bool($x)

Возвращает значение Истина, если пере-

 

 

 

менная является логической величиной

 

 

 

 

 

7

gettype($x)

Возвращает строки, которые соответствуют

 

 

 

тому или иному типу переменной

 

 

 

 

 

8

settype($x, $type)

Определяет тип переменной в явном виде

 

 

 

 

 

В PHP предусмотрена функция проверки существования переменной – isset($x), которая позволяет определить факт передачи сценарию заданных параметров. Преимущество такой проверки состоит в том, что сценарий PHP продолжает стабильно работать вне зависимости от пользовательских ошибок.

Для того чтобы удалить переменную, можно использовать функцию unset(). Функция удаления переменных достаточно полезна в работе с большими объемами данных.

Выражение в PHP можно определить как последовательность операций, операндов и скобок, которая направлена на вычисление конкретного

44

результата. Операции представляют собой сочетания символов, отображающих действия по преобразованию величин [1, с. 54].

Можно обозначить следующие типы операций:

1)арифметические (сложение, вычитание, умножение, деление);

2)строковые (слияние строк, символ строки в определенной позиции);

3)операции присваивания (присваивание, сложное присваивание, операции операторов инкремента и декремента);

4)операции сравнения (проверка выполнения того или иного условия);

5)логические операции (работа с логическими выражениями). Приоритетность выполнения операций представлена в табл. 3.3.

 

 

Таблица 3.3

 

Приоритетность операций

 

 

 

 

Приоритет

Оператор

Порядок выполнения

 

 

 

13

(постфикс) ++ (постфикс) --

слева направо

 

 

 

12

++ (префикс) -- (префикс)

справа налево

 

 

 

11

* (умножение)

слева направо

 

/ (деление)

 

 

% (остаток от деления)

 

 

 

 

10

+ (сложение)

слева направо

 

- (вычитание)

 

 

 

 

9

<< (сдвиг влево всех битов переменной)

слева направо

 

>> (сдвиг вправо всех битов переменной)

 

 

 

 

8

<, > (меньше, больше)

слева направо

 

<=, >= (меньше или равно, больше или равно)

 

 

 

 

7

= = (равно)

слева направо

 

!= (не равно)

 

 

 

 

6

& (побитовое AND)

слева направо

 

 

 

5

^ (XOR)

слева направо

 

 

 

4

| (логическое сложение)

слева направо

 

 

 

3

&& (логическое AND)

слева направо

 

 

 

2

|| (логическая операция сравнения)

слева направо

 

 

 

1

= += -= *= **= /= .= %= &= |= ^= <<= >>=

справа налево

 

(операторы присваивания)

 

 

 

 

45

Как и во многих языках программирования, в PHP широко применяется условный оператор (if… else). Его конструкция выглядит следующим образом:

if (выражение) инструкция_1;

else

инструкция_2;

Смысл представленной конструкции таков: при истинности выражения выполняется инструкция_1, в противном случае – инструкция_2. Если инструкция_1 или инструкция_2 содержат несколько команд, то их заключают в фигурные скобки. Инструкция_1 или инструкция_2 могут носить условный характер, что дает возможность проводить ряд проверок разного уровня вложенности. В языке PHP к каждому else относится ближайшее условие.

Еще одна форма конструкции if… else выглядит так: if (выражение):

инструкция_1;

elseif (другое_выражение): инструкция_2;

else:

инструкция_3; endif

С точки зрения синтаксиса необходимо внимательно относиться

кдвоеточиям: если двоеточие будет опущено, то код не будет выполнен.

ВPHP часто используется переключатель (switch), который является инструментом для осуществления множественного выбора. Синтаксис переключателя:

switch (expression) // выражение переключателя

{

case value1: // константное выражение 1

46

statements1; // блок операторов break;

case value2: // константное выражение 2 statements2; // блок операторов

break;

default:

statements;

}

Структура switch дает возможность управления тому оператору case, для которого значение константного выражения является таким же, как и значение выражения переключателя. Поэтому осуществляется анализ переключающего значения expression, на основании которого выполняется переход на ту ветку программы, где значение совпадает с константным выражением. Выполнение операторов или их группы происходит до того момента, пока в коде не встретится ключевая команда break, которая подразумевает выход из переключателя. В случае, если значение переключателя не находит совпадений ни с одним из константных выражений, реализовывается переход к оператору default. Ключевые команды default и break являются необязательными, поэтому по возможности их можно пропускать.

В PHP используются основные виды циклов, применяемые в объектно ориентированном программировании:

1.Цикл с предусловием (while).

2.Цикл с постусловием (do… while).

3.Цикл учета итераций (for).

4.Цикл учета итераций (foreach).

Синтаксис цикла с предусловием выглядит так: while (логическое_выражение)

инструкция;

47

Алгоритм работы с данным видом цикла состоит из нескольких шагов:

●Вычисление значения логического выражения.

●Определение истинности/ложности значения логического выражения.

●При условии истинности значения выполняется тело цикла. В противном случае осуществляется переход к следующему за циклом оператору.

Так же как и в конструкции условного оператораif, можно объединять операторы внутри тела циклаwhile, применяя альтернативный синтаксис:

while (логическое_выражение): инструкция;

endwhile;

Синтаксис цикла с постусловием do… while представлен следующим образом:

do {

команды;

} while (логическое_выражение);

Отличие цикла с постусловием от цикла с предусловием состоит в том, что сначала происходит выполнение тела цикла, и только после этого осуществляется проверка условия. Следовательно, тело цикла будет выполнено как минимум однократно. Альтернативного синтаксиса для цикла с постусловием не предусмотрено.

Цикл учета итераций (for) основан на применении счетчиков, которые позволяют выполнять тело цикла определенное количество раз. Синтаксис цикла выглядит так:

for (инициализирующие_команды; условие_цикла; команды_после_итерации)

тело_цикла;

Цикл for всегда стартует с исполнения инициализирующих команд, которые отрабатывают только один раз. После этого проверяется само условие цикла. В случае его истинности выполняется тело цикла, а также команды после итерации. Затем снова проверяется условие, и в случае если оно истинно, происходит выполнение тела цикла и поститерационных

48

команд. Так продолжается до тех пор, пока условие не станет ложным. Альтернативой синтаксиса цикла for является конструкция, представленная ниже:

for (инициализирующие_команды; условие_цикла; команды_после_итерации):

тело_цикла; endfor;

Цикл учета итераций foreach имеет следующий синтаксис: foreach (массив as $ключ=>$значение)

тело_цикла;

В рамках цикла foreach выполнение команд происходит циклически для каждого элемента массива, в то же время очередная связка $ключ=>$значение записывается в переменных $ключ и $значение. Данный цикл позволяет работать с массивами и объектами по методу перебора.

Цикл foreach можно представить в альтернативной форме, которая применяется в том случае, когда значение ключа очередного элемента не критично для решения задачи. В таком случае доступно только значение элемента:

foreach ($массив as $значение) тело_цикла;

Таким образом, любой сценарий PHP может быть создан из достаточно большого набора конструкций, который формируется в зависимости от поставленных задач.

3.3.ВЗАИМОДЕЙСТВИЕ ЯЗЫКАPHP И СЕРВЕРАMYSQL

Хранение информации при работе web-приложений необходимо для осуществления доступа к актуальным данным по запросу пользователя в заданный период времени. Информацию можно хранить двумя способами: текстовыми файлами или с помощью баз данных.

49

При проектировании и разработке web-приложений с помощью PHP преимущественно используется второй способ хранения данных. Базы данных позволяют обеспечить защиту информации, размещать информацию достаточно оперативно, а также ускорить отбор необходимых записей из базы. Также при работе с базами данных значительно легче отлаживать исходный программный код.

Базы данных можно классифицировать следующим образом:

1)иерархические – подразумевается наличие древовидной структуры данных;

2)реляционные – данные группируются в таблицы. Запросы к данным также возвращают таблицу, которая может использоваться в последующей работе с другими запросами;

3)объектно ориентированные – данные хранятся в формате объектов. Имеют преимущества перед реляционными базами в части удобства, но уступают им по производительности;

4)гибридные – подразумевается возможность совмещения свойств реляционных и объектно ориентированных баз данных.

Основные характеристики реляционных баз данных можно описать так: ● данные структурированы и хранятся в таблицах; ● на пересечении строки и столбца находится только одно конкрет-

ное значение; ● каждый столбец имеет имя; всем значениям столбца присвоен один

итот же тип;

●порядок столбцов формируется при создании таблицы; порядок строк, как правило, свободный;

●таблицы состоят из записей (определяются строками), записи состоят из конкретных полей (определяются столбцами).

Основная терминология реляционных баз данных представлена в табл. 3.4.

50

 

 

Таблица 3.4

 

Терминология реляционных баз данных

 

 

 

№ п/п

Термин

Значение

 

 

 

1

Поле

Столбец таблицы, содержащий значения определен-

 

 

ного свойства

 

 

 

2

Запись

Набор полей, имеющий структурированную инфор-

 

 

мацию

 

 

 

3

Таблица

Набор записей одной структуры полей

 

 

 

4

База данных

Совокупность данных, упорядоченных в соответствии

 

 

с определенной схемой данных

 

 

 

5

Индекс

Список значений полей, позволяющий ускорить по-

 

 

иск в базе данных

 

 

 

6

Первичный ключ

Уникальный идентификатор записи в базе данных

 

 

 

7

Внешний ключ

Поле, используемое для связывания двух таблиц друг

 

 

с другом

 

 

 

8

Схема базы данных

Структура, описывающая связи между полями и таб-

 

 

лицами

 

 

 

9

Запрос

Конструкция, позволяющая осуществлять отбор запи-

 

 

сей

 

 

 

Работа с реляционными базами данных осуществляется посредством систем управления базами данных. Условно системы управления базами данных (далее СУБД) можно разделить на две большие группы: настольные и сетевые. Данное разделение основано на особенностях реализации клиентской и серверной частей.

Настольная СУБД представляет собой единую структуру, объединяющую как клиентскую, так и серверную части в одном исполняемом файле.

В серверной СУБД определен процессор, который работает на специально выделенной машине-сервере. Он принимает запросы от клиентских станций, обрабатывает их и пересылает результаты выполнения запросов обратно.

51

К явным недостаткам настольных СУБД можно отнести низкую скорость работы в многопользовательском режиме доступа к БД, а также низкий уровень защищенности данных.

В числе недостатков серверных СУБД можно отметить сложность, возникающую при установке и сопровождении. В сравнении с локальными СУБД серверные СУБД обладают высокой производительностью и защищенностью данных.

Одной из самых актуальных и популярных СУБД в web-разработке является MySQL. MySQL является достаточно быстрым и экономично расходующим ресурсы сервером, который подходит для создания небольших сайтов. Данный сервер взаимодействует с языком PHP и может осуществлять поддержку одновременно нескольких баз данных.

Ниже приведены основные базовые команды и операторы, которые используются в MySQL (табл. 3.5).

 

 

Таблица 3.5

 

Базовые команды и операторы MySQL

 

 

 

№

Команда

Значение

п/п

или оператор

 

 

 

 

1

CREATE DATABASE

Создание базы данных с заданным именем

 

 

 

2

DROP DATABASE

Удаление базы данных

 

 

 

3

CREATE TABLE

Создание новой таблицы в базе данных

 

 

 

4

SHOW TABLES

Вывод списка таблиц в указанной базе данных

 

 

 

5

DESCRIBE

Представление информации о столбцах таблицы

 

 

 

6

ALTER TABLE RENAME

Изменение макета таблицы (переименование)

 

 

 

7

ALTER TABLE ADD

Изменение макета таблицы (добавление колонки)

 

 

 

8

ALTER TABLE CHANGE

Изменение макета таблицы (изменение колонки)

 

 

 

9

ALTER TABLE DROP

Изменение макета таблицы (удаление колонки)

 

 

 

10

INSERT INTO… VALUES

Добавление строк в таблицу

 

 

 

11

DELETE

Удаление строк из временных или постоянных

 

 

базовых таблиц

 

 

 

12

UPDATE

Изменение данных в таблицах

 

 

 

13

SELECT

Возвращение набора данных из базы данных

 

 

 

52

Окончание табл. 3.5

№

Команда

Значение

 

п/п

или оператор

 

 

 

 

 

 

14

DISTINCT

Указание на то, что следует работать

только

 

 

с уникальными значениями столбца

 

 

 

 

15

WHERE

Управление записями, удовлетворяющими опре-

 

 

деленным критериям

 

 

 

 

16

IN

Проверка соответствия выражения какому-либо

 

 

значению в списке значений

 

 

 

 

 

17

BETWEEN

Выбор значений в заданном диапазоне

 

 

 

 

 

18

LIKE

Определение соответствия символьной

строки

 

 

и шаблона

 

 

 

 

19

GROUP BY

Группировка результатов при выборке из базы

 

 

данных

 

 

 

 

 

20

ORDER BY

Сортировка выходных значений

 

 

 

 

 

Язык SQL применятся в программах двумя способами: посредством встроенного языка и интерфейса программирования приложений (Application Program Interface, API). В рамках первого метода конструкции SQL встраиваются внутрь приложения, в настоящий момент подобный метод используется крайне редко. В рамках второго метода прикладное программное обеспечение осуществляет взаимодействие с системой управления базами данных посредством совокупности функций. Преимуществом СУБД MySQL является то, что для обеспечения ее работы отсутствует необходимость в установке дополнительного программного обеспечения и в дальнейшей настройке СУБД.

Расширение mysqli (MySQL Improved) является расширением PHP, поддерживающим возможности всех современных версий MySQL [14].

Алгоритм работы с СУБД, как правило, включает в себя несколько основных этапов:

1)настройка подключения к серверу;

2)формирование запросов на языке SQL;

53

3)получение корректных результатов запросов в виде совокупности – массива записей;

4)применение полученных результатов в сценариях PHP.

Функция mysqli_connect() предназначена для открытия и установления соединения с сервером СУБД. Данная функция является стандартной и возвращает ресурс соединения. В рамках этого ресурса происходит дальнейшая работа с MySQL. Для выполнения соединения с сервером необходимо знать три параметра: сам адрес сервера СУБД, логин и пароль. При типовой установке MySQL адресом сервера будет являться localhost, логином – root. Пароль задается на одном из этапов мастера по установке [14].

Синтаксис функции:

mysqli_connect(<адрес сервера>, <имя пользователя>, <пароль>, <имя базы данных>);

Следующим шагом после установления соединения является проверка его устойчивости. Данная проверка проводится для того, чтобы исключить наличие ошибок подключения к базе данных. При некорректно заданных параметрах подключения и высокой нагрузке MySQL будет отказывать в новых подключениях, что, в свою очередь, приведет к отсутствию устойчивого соединения, поэтому проведение проверки подключения к базе данных обязательно.

Итоговым значением исполнения функции mysqli_connect() должно быть возвращено значение специального типа – сам ресурс. В случае если при подключении возникают какие-то ошибки, то возвращенным значением функции установления соединения будет логическое значение «ложь»

– false. В рамках проверки соединения следует также осуществлять проверку на ошибки. Для этого применяется функция mysqli_connect_error(), которая служит для представления текстового описания последних оши-

бок MySQL.

После установления соединения, как правило, необходимо корректно задать кодировку, которая будет применяться в процессе обмена данными

54

с MySQL. В случае если кодировка не будет установлена верно, записи со значениями будут преобразованы в последовательность знаков (например, знаков «?»). Для задания кодировки можно использовать функцию mysqli_set_charset($con, "utf8") – параметр "utf8" при задании кодировки UTF-8.

Условно SQL-запросы можно разделить на две большие категории:

1.Запросы, связанные с чтением информации (применение оператора

SELECT).

2.Запросы, направленные на любое изменение данных (применение операторов UPDATE, DELETE, INSERT).

Запросы категории изменения данных возвращают результат их исполнения: успех или неуспех. Запросы категории чтения информации возвращают специальный ресурс результата, который при необходимости можно преобразовать в ассоциативный массив или двумерный массив данных. В ассоциативном массиве данных обращение к значению осу-

ществляется по ключу. Особенность двумерного массива заключается в том, что элементами такого массива являются одномерные массивы. Доступ к значениям массива осуществляется по двум индексам.

Посредством выражения INSERT INTO осуществляется добавление записей в таблицу базы данных. Посредством выражения SELECT происходит отбор и чтение записей в базе данных. Функция mysqli_query() позволяет выполнить сами запросы. Ее основными параметрами являются ресурс подключения, полученный от функции mysqli_connect(), и строка с запросом.

Функция mysqli_insert_id() возвращает сгенерированный запросом INSERT или UPDATE идентификатор последней добавленной записи, принимает при этом один параметр – ресурс соединения.

Зачастую появляется потребность в том, чтобы понять, какое количество записей будет возвращено исполненным SQL-запросом. Данная информация способствует организации постраничной навигации. Для этого используется функция mysqli_num_rows(), которой должен быть передан

55

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]