- •Введение.
- •Лекция1.Введениевклиент-серверныеСубд.
- •InterbaseSqlServer.Общиесведения.
- •Платформы
- •Типыприложений
- •ФайлыбазыданныхInterBase
- •Лекция3.Триггерыихранимыепроцедуры
- •Хранимыепроцедуры(StoredProcedures)
- •Терминаторы
- •Заголовок
- •Телопроцедуры
- •Блоккодапроцедуры
- •Операторприсваивания
- •УсловныйоператорIf…then…else
- •ОператорSelect
- •ЦиклForselecTиSuspend
- •ЦиклWhile…do
- •ОператорыInsert,update,delete
- •ОператорExecuteprocedure
- •Исключения
- •СобытияиоператорPost_event
- •Измененияиудаленияхранимыхпроцедур
- •Примерысозданияивызовахранимыхпроцедур
- •Генераторы
- •Увеличениешагагенератора
- •Триггеры
- •ПеременныеNeWиOld
- •Реализацияавтоинкрементныхключевыхполей
- •Лекция4.Транзакции.Механизмтранзакций
- •Атомарность(Atomicity)
- •Согласованность(Consistency)
- •Изолированность(Isolation)
- •Устойчивость(Durability)
- •Неявныйиявныйстарттранзакций
- •Кактранзакцияработает
- •Уровниизолированноститранзакций
- •Параметрытранзакций
- •Компонентыдоступакданнымивизуальныекомпоненты МеханизмыдоступакБд
- •ПроблемырусскихбукввInterBase
- •Лекция5. Основы языка php. Функции php для работы с субд ИсторияPhp
- •ВозможностиPhp
- •Основнойсинтаксис
- •Разделениеинструкций
- •Комментарии
- •Переменные,константыиоператоры
- •Переменные
- •Константы
- •Операторы
- •Типыданных
- •Типboolean(булевилилогическийтип)
- •Типinteger(целые)
- •Типfloat(числасплавающейточкой)
- •Типstring(строки)
- •Одинарныекавычки
- •Двойныекавычки
- •Типarray(массив)
- •Определениеприпомощиarray()
- •Определениеспомощьюсинтаксисаквадратныхскобок
- •Типobject(объекты)
- •Типresource(ресурсы)
- •Решениезадачи
- •Построениеинтерфейсадлядобавленияинформации
- •Установкасоединения
- •Выборбазыданных
- •Получениеспискаполейтаблицы
- •Отображениеспискаполейвhtml-форму
- •Записьданныхвбазуданных
- •Отображениеданных,хранящихсявMySql
- •Заключение
Типobject(объекты)
Объекты–типданных,пришедшийизобъектно-ориентированногопрограммирования(ООП).СогласнопринципамООП,класс–этонаборобъектов,обладающихопределеннымисвойствамииметодамиработысним,аобъектсоответственно–экземпляркласса.Например,программисты–этокласслюдей,которыепишутпрограммы,изучаюткомпьютернуюлитературуи,крометого,каквселюди,имеютимяифамилию.Теперь,есливзятьодногоконкретногопрограммиста,ВасюИванова,томожносказать,чтоонявляетсяобъектомклассапрограммистов,обладаеттемижесвойствами,чтоидругиепрограммисты,тожеимеетимя,пишетпрограммыит.п.
ВPHPдлядоступакметодамобъектаиспользуетсяоператор->.Дляинициализацииобъектаиспользуетсявыражениеnew,создающеевпеременнойэкземпляробъекта.
<?php
//создаемкласслюдей
classPerson
{
//метод,которыйобучаетчеловекаPHP
functionknow_php()
{
echo"ТеперьязнаюPHP";
}
}
$bob=newPerson;//создаемобъект
//классачеловек
$bob->know_php();//обучаемегоPHP
?>
Пример2.12.ОбъектывPHP
БолееподробнореализациюпринциповООПвязыкеPHPмырассмотримводнойизследующихлекций.
Типresource(ресурсы)
Ресурс–этоспециальнаяпеременная,содержащаяссылкунавнешнийресурс(например,соединениесбазойданных).Ресурсысоздаютсяииспользуютсяспециальнымифункциями(например,mysql_connect(),pdf_new()ит.п.).
ТипNull
СпециальноезначениеNULLговоритотом,чтопеременнаянеимеетзначения.
ПеременнаясчитаетсяNULL,если:
ейбылаприсвоенаконстантаNULL($var=NULL);
ейещенебылоприсвоенокакое-либозначение;
онабылаудаленаспомощьюunset().
СуществуеттолькооднозначениетипаNULL–регистронезависимоеключевоесловоNULL.
Решениезадачи
Теперьвернемсякзадаче,которуюмыпоставиливсамомначалелекции.Напомним,чтоонасостоялавсоставленииписьмаразнымлюдямпоповодуразныхсобытий.Попытаемсяиспользоватьдлярешенияэтойзадачиизученныесредства–переменные,операторы,константы,строкиимассивы.Взависимостиотполучателяизменяетсясобытиеиобращение,указанныевписьме,поэтомуестественновынестиэтивеличинывпеременные.Болеетого,посколькусобытийилюдеймного,удобноиспользоватьпеременныетипамассив.Подписьвписьмеостаетсяпостояннойвсегда,поэтомулогичнозадатьеекакконстанту.Чтобынеписатьслишкомдлинныеигромоздкиестроки,используемоператорконкатенации.Итак,вотчтополучилось:
<?
//пустьнашаподпись
//будетконстантой
define("SIGN","Суважением,Вася");
//зададиммассивылюдейисобытий
$names=array("ИванИванович",
"ПетрПетрович",
"СеменСеменович");
$events=array(
"f"=>"деньоткрытыхдверей",
"o"=>"открытиевыставки",
"p"=>"балвыпускников");
//составимтекстприглашения
$str="Уважаемый(ая),$names[0].";
$str.="<br>ПриглашаемВасна".
$events["f"];
$str.="<br>".SIGN;
echo$str;//выведемтекстнаэкран
?>
ВзаимодействиеPHPиMySQL
ВдистрибутивPHPвходитрасширение,содержащеевстроенныефункциидляработысбазойданныхMySQL.ВэтойлекциимыпознакомимсяснекоторымиосновнымифункциямидляработысMySQL,которыепотребуютсядлярешениязадачпостроенияweb-интерфейсовсцельюотображенияинаполнениябазыданных.Возникаетвопрос,зачемстроитьтакиеинтерфейсы?Длятогочтобывноситьинформациювбазуданныхипросматриватьеесодержимоемоглилюди,незнакомыесязыкомзапросовSQL.Приработесweb-интерфейсомдлядобавленияинформациивбазуданныхчеловекунужнопростоввестиэтиданныевhtml-формуиотправитьихнасервер,анашскриптсделаетвсеостальное.Адляпросмотрасодержимоготаблицдостаточнопростощелкнутьпоссылкеизайтинанужнуюстраницу.
ДлянаглядностибудемстроитьэтиинтерфейсыдлятаблицыArtifacts,вкоторойсодержитсяинформацияобэкспонатахвиртуальногомузеяинформатики.Впредыдущейлекциимыужеприводилиструктуруэтойколлекции,атакжееесвязисколлекциямиописанияперсон(Persons)иизображений(Images).Напомним,чтокаждыйэкспонатвколлекцииArtifactsописываетсяспомощьюследующиххарактеристик:
название(title);
автор(author);
описание(description);
альтернативноеназвание(alternative);
изображение(photo).
Названиеиальтернативноеназваниеявляютсястрокамименеечем255символовдлиной(т.е.имеюттипVARCHAR(255)),описание-текстовоеполе(имееттипTEXT),авполях"автор"и"изображение"содержатсяидентификаторыавтораизколлекцииPersonsиизображенияэкспонатаизколлекцииImagesсоответственно.