- •Введение.
- •Лекция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
- •Заключение
Типarray(массив)
МассиввPHPпредставляетсобойупорядоченнуюкарту–тип,которыйпреобразуетзначениявключи.Этоттипоптимизированвнесколькихнаправлениях,поэтомувыможетеиспользоватьегокаксобственномассив,список(вектор),хеш-таблицу(являющуюсяреализациейкарты),стэк,очередьит.д.ПосколькувыможетеиметьвкачествезначениядругоймассивPHP,можнотакжелегкоэмулироватьдеревья.
Определитьмассивможноспомощьюконструкцииarray()илинепосредственнозадаваязначенияегоэлементам.
Определениеприпомощиarray()
array([key]=>value,
[key1]=>value1,...)
Языковаяконструкцияarray()принимаетвкачествепараметровпарыключ=>значение,разделенныезапятыми.Символ=>устанавливаетсоответствиемеждузначениемиегоключом.Ключможетбытькакцелымчислом,такистрокой,азначениеможетбытьлюбогоимеющегосявPHPтипа.Числовойключмассивачастоназываютиндексом.ИндексированиемассивавPHPначинаетсяснуля.Значениеэлементамассиваможнополучить,указавпослеименимассивавквадратныхскобкахключискомогоэлемента.Еслиключмассивапредставляетсобойстандартнуюзаписьцелогочисла,тоонрассматриваетсякакчисло,впротивномслучае–какстрока.Поэтомузапись$a["1"]равносильназаписи$a[1],такжекаки$a["-1"]равносильно$a[-1].
<?php
$books=array("php"=>
"PHPusersguide",
12=>true);
echo$books["php"];
//выведет"PHPusersguide"
echo$books[12];
//выведет1
?>
Пример2.9.МассивывPHP
Еслидляэлементаключнезадан,товкачествеключаберетсямаксимальныйчисловойключ,увеличенныйнаединицу.Еслиуказатьключ,которомуужебылоприсвоенокакое-тозначение,тоонобудетперезаписано.НачинаясPHP4.3.0,еслимаксимальныйключ–отрицательноечисло,тоследующимключоммассивабудетноль(0).
<?php
//массивы$arrи$arr1эквивалентны
$arr=array(5=>43,32,56,"b"=>12);
$arr1=array(5=>43,6=>32,
7=>56,"b"=>12);
?>
Пример2.10.МассивывPHP
ЕслииспользоватьвкачествеключаTRUEилиFALSE,тоегозначениепереводитсясоответственновединицуинольтипаinteger.ЕслииспользоватьNULL,товместоключаполучимпустуюстроку.Можноиспользоватьисамупустуюстрокувкачествеключа,приэтомеенадобратьвкавычки.Такчтоэтонетожесамое,чтоиспользованиепустыхквадратныхскобок.Нельзяиспользоватьвкачествеключамассивыиобъекты.
Определениеспомощьюсинтаксисаквадратныхскобок
Создатьмассивможно,простозаписываявнегозначения.Какмыужеговорили,значениеэлементамассиваможнополучитьспомощьюквадратныхскобок,внутрикоторыхнужноуказатьегоключ,например,$book["php"].Еслиуказатьновыйключиновоезначение,например,$book["new_key"]="new_value",товмассивдобавитсяновыйэлемент.Еслимынеукажемключ,атолькоприсвоимзначение$book[]="new_value",тоновыйэлементмассивабудетиметьчисловойключ,наединицубольшиймаксимальногосуществующего.Еслимассив,вкоторыймыдобавляемзначения,ещенесуществует,тоонбудетсоздан.
<?
$books["key"]=value;//добавиливмассив
//$booksзначение
//valueсключомkey
$books[]=value1;/*добавиливмассив
значениеvalue1с
ключом13,поскольку
максимальныйключу
насбыл12*/
?>
Длятогочтобыизменитьконкретныйэлементмассива,нужнопростоприсвоитьемусегоключомновоезначение.Изменитьключэлементанельзя,можнотолькоудалитьэлемент(паруключ/значение)идобавитьновую.Чтобыудалитьэлементмассива,нужноиспользоватьфункциюunset().
<?php
$books=array("php"=>
"PHPusersguide",
12=>true);
$books[]=
"BookaboutPerl";//добавилиэлемент
//сключом(индексом)
//13этоэквивалентно
//$books[13]=
//"BookaboutPerl";
$books["lisp"]=
123456;/*Этодобавляеткмассивуновый
элементсключом"lisp"и
значением123456*/
unset($books[12]);//Этоудаляетэлемент
//cключом12измассива
unset($books);//удаляетмассивполностью
?>
Заметим,что,когдаиспользуютсяпустыеквадратныескобки,максимальныйчисловойключищетсясредиключей,существующихвмассивесмоментапоследнегопереиндексирования.Переиндексироватьмассивможноспомощьюфункцииarray_values().
<?php
$arr=
array("a","b","c");/*Создаеммассив
созначениями
"a","b"и"c".
Посколькуключи
неуказаны,они
будут0,1,2
соответственно*/
print_r($arr);//выводиммассив(иключи,
//изначения)
unset($arr[0]);
unset($arr[1]);
unset($arr[2]);
//удаляемизнеговсезначения
print_r($arr);//выводиммассив(иключи,
//изначения)
$arr[]="aa";//добавляемновыйэлемент
//вмассив.
//Егоиндексом(ключом)
//будет3,ане0
print_r($arr);
$arr=
array_values($arr);//переиндексируем
//массив
$arr[]="bb";//ключомэтогоэлемента
//будет1
print_r($arr);
?>
Пример2.11.Переиндексациямассива
Результатомработыэтогоскриптабудет:
Array([0]=>a[1]=>b[2]=>c)
Array()
Array([3]=>aa)
Array([0]=>aa[1]=>bb)