Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений




Скачать 444.1 Kb.
НазваниеУчебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений
страница2/5
Дата конвертации19.04.2013
Размер444.1 Kb.
ТипУчебно-методическое пособие
1   2   3   4   5

2. Программа курса

Раздел 1. Основы языка программирования PHP



Как было отмечено ранее, PHP (англ. PHP: Hypertext Preprocessor — «PHP: препроцессор гипертекста») — скриптовый язык программирования общего назначения, интенсивно применяющийся для разработки WEB-приложений, в том числе взаимодействующих с СУБД.

В отличие, в частности, от сценариев JavaScript и VBScript, выполняемых на стороне «клиента», PHP сценарии выполняются на стороне «сервера» и позволяют работать с различными СУБД, например MS SQL Server, Oracle, серверной файловой системой, почтовыми сервисами и др.

Обратите внимание. Для работы с PHP (ASP, JSP и др.) (в отличие от JavaScript) нужен установленный и специально настроенный WEB-сервер, например, Internet Information Server (IIS). К примеру, если у Вас установлена операционная система Windows XP/Vista и т.п., то Вы можете скачать дистрибутив PHP c сайта: www.php.net (например, для пятой версии: http://ru.php.net/get/php-5.2.12-Win32.zip/from/a/mirror).

Обратите внимание. PHP является свободно распространяемым продуктом, класса Open Source (открытого исходного кода).

Отметим, что файл, использующий PHP-сценарии, должен, как правило, иметь расширение «*.php».


1.1 Введение в PHP



Следующий код




Дает

Hello, World!

Имена переменных обозначаются знаком $. То же самое "Hello, World!" можно получить следующим образом:



$message = "Hello, World!";

echo($message);

?>


Конкатенация (присоединение) строк осуществляется с помощью . (точки); обычные арифметические операции определяются так, как Вы того и ожидаете:



$greeting = "Hello ";

$num = 3 + 2;

$num++;

echo ("$greeting.$num.”people!“);

?>


даст Hello 6 people!


Обратите внимание. Синтаксис PHP очень похож на C.

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



$name = 'Susannah';

$greeting_1 = "Hello, $name!";

$greeting_2 = 'Hello, $name!';

echo "$greeting_1\n";

echo "$greeting_2\n";

?>


даст

Hello, Susannah!

Hello, $name!


Обратите внимание на то, что \n в строке означает переход к новой строке, совсем как в Perl или в C. Однако это работает только в тех строках, которые взяты в двойные кавычки.

PHP обеспечивает доступ к переменным окружения как к регулярным переменным. Например, при нажатии на кнопку формы инициируется передача данных формы методом GET или POST

Такой сценарий:


$action = $_REQUEST[‘sbt']; // Можно также использовать $_POST[‘sbt'];

echo($action);

?>

Даст результат:

Вход

после нажатия на кнопку «Вход»










Очевидное достоинство PHP в том, что Вам не надо заботиться о получении, раскодировании и любой другой обработке данных из формы, как например при написании CGI программы на языке C/C++. За нас все делает PHP. Очень легко и красиво он автоматически заполняет несколько встроенных массивов:

$_SERVER ($HTTP_SERVER_VARS) - для серверных переменных;

$_ENV ($HTTP_ENV_VARS) - для переменных среды, в которой работает PHP;

$_COOKIE ($HTTP_COOKIE_VARS) - для переменных передающихся посредством cookies;

$_GET ($HTTP_GET_VARS) - для параметров формы, переданных посредством метода GET;

$_POST ($HTTP_POST_VARS) - для параметров формы, переданных методом POST;

$_FILES ($HTTP_POST_FILES) - для закачиваемых посредством метода POST файлов;

$_REQUEST - массив содержащий внутри себя массивы $_GET, $_POST и $_COOKIE;

$_SESSION ($HTTP_SESSION_VARS) - для хранения параметров сессии.

Используя $_REQUEST, Вы получаете доступ к данным формы. Можете сохранить эти данные в Базе Данных и т.д.

1.2 Установка интерпретатора PHP



Шаг 1. Распакуйте дистрибутив в папку C:\PHP

Шаг 2. Настройте Internet Information Server на своем локальном компьютере, так чтобы выполнялась обработка файлов с расширением *.php. Для этого нужно зайти в Панель управления Windows, далее – Администрирование, далее - Диспетчер служб IIS. Затем нужно добавить обработку php-сценариев фильтром ISAPI для всех узлов по умолчанию с помощью вкладки «Фильтры ISAPI» (рис. 1)




Рис. 1. Добавление фильтра ISAPI для обработки PHP-сценариев.


Отметим, что Internet Server Application Programming Interface (ISAPI) — это API (Application Programming Interface - набор готовых классов, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) для использования во внешних программных продуктах.) для Internet Information Services, коллекции сетевых служб Microsoft Windows. Соответственно, фильтры ISAPI представляют собой динамические библиотеки DLL, напрямую взаимодействующие с IIS.

Далее, нужно добавить «Сопоставление сценария PHP с исполняемым файлом ISAPI-фильтра (php5isapi.dll). Это можно сделать в разделе «Сопоставление обработчиков» системы администрирования IIS (рис. 2).








Рис. 2. Настройка «Сопоставления обработчиков» IIS для PHP.


Обратите внимание. Для различных версий ОС Windows, интерфейс Диспетчера служб IIS также будет различным. К примеру, в для Windows XP добавление фильтра ISAPI для PHP имеет вид рис. 3.




Рис. 3. Добавление фильтра ISAPI для обработки PHP-сценариев в для IIS 6.0 ОС Windows XP.


Шаг 3. Скопируйте php5ts.dll из дистрибутива в папку C:\Windows\system32


Шаг 4. Убедитесь, что PHP работает под управлением Вашего IIS. Для этого создайте файл test.php в папке IIS (C:\Inetpub\wwwroot) c таким кодом:



phpinfo();

?>

Должен быть получен вот такой результат



Рис. 4. Оценка корректности установки и конфигурирования PHP.


Обратите внимание на параметр Loaded Configuration File. К примеру, в нашем случае он имеет следующее значение: «C:\Program Files\PHP\php.ini». Это означает, что кофигурационный файл, с помощью которого Вы можете переопределять параметры PHP модуля, находится в папке «C:\Program Files\PHP), и загружен успешно.


Шаг5. Сконфигурируйте файл php.ini под Ваши задачи.





Рис. 5. Конфигурирование PHP под собственные задачи.

1.3 Полезные конструкции на PHP



include("login.php"); //Вставка файла login.php в текущий файл




//Здесь произвольный HTML код

//Данный блок кода будет выполнятся, только если переменная $action примет значение «Вход», т.е. если Пользователь нажмет на кнопку «Вход

……………………………………




//Функция isset позволяет проверить установлено ли значение переменной $action


if(!isset($action))

$action="";


Простейший способ установить cookie на PHP таков:

setcookie('name', 'bret');


Затем, для каждой последующей страницы на Вашем сайте, просматриваемой в течение данной сессии (пока пользователь не покинет сайт) переменная $name будет иметь значение 'bret' и его можно легко прочитать средствами PHP. Этот тип cookie известен как cookie-сессия, поскольку значение сохраняется в течение пользовательской сессии.

С помощью cookie можно создать, в частности, «Корзину покупок» для Интернет-магазина или запомнить «профиль» пользователя. Если Вы хотите, чтобы значение cookie запоминалось браузером после того, как пользователь закончит сессию, Вы должны передать функции setcookie() третий параметр - дату истечения срока действия cookie. Поскольку PHP сформировался в основном в среде Unix, Вы должны представить время истечения срока действия cookie как число секунд, прошедших с 1 января 1970 г.

Например, если Вы хотите, чтобы срок действия cookie истек 1 января 2000 г., Вы записываете:


$y2k = mktime(0,0,0,1,1,2000);

setcookie('name', 'bret', $y2k); ?>


Удаление cookie




Обратите внимание. В силу того, как организована обработка cookies в протоколе HTTP, необходимо установить значения всех cookie до вывода какого-либо текста. Если сделать наоборот, PHP выдаст Вам предупреждение и значение cookie не будет послано. Вот так правильно:



setcookie('name', 'jeff');

echo "Hello Everyone!";

?>


Создать массив можно также путем вызова функции array():

$fruit = array();

$favorites = array();

или так

$fruit = array('banana','papaya'); //Создается массив из 2-х элементов 'banana‘ и 'papaya'


Индексы массивов (как обычных, так и ассоциативных) задаются в квадратных скобках ([ и ]):

$fruit[0] = 'banana';

$fruit[1] = 'papaya';

$favorites['animal'] = 'turtle';

$favorites['monster'] = 'cookie';

1.4 Управляющие структуры PHP


Вы можете использовать операторы цикла, такие как for и while. В результате выполнения оператора:

for ($i = 4; $i < 8; $i++) {

print "I have eaten $i bagels today.\n";

}

Получим:

I have eaten 4 bagels today.

I have eaten 5 bagels today.

I have eaten 6 bagels today.

I have eaten 7 bagels today.

Тот же самый результат даст

$i = 4;

while ($i < 8) {

print "I have eaten $i bagels today.\n";

$i++; }


Вы можете также использовать конструкции с if и elseif:

if ($user_count > 200) {

print "Сайт сейчас перегружен!";

}

elseif ($user_count > 100) {

print "Сайт активно используется!";

else {

print "Сайт свободен - подключились только $user_count пользователей.";

}


Вы можете использовать конструкции с switch, do...while.

switch($kv1) // Оцениваем значение переменной $kv1

{

case 1:

{ $ms1="01";

break;}

case 2:

{ $ms1="04";

break;}

}

1.5 Работа с файловой системой


Пример обработки файла CSV (с данными разделямыми точкой с запятой).

$fp = file("baza/data.txt"); //Открываем файл data.txt

$pat =";"; // Определяем разделитель данных в файле “;”


for($i = 0; $i < count($fp); $i++){

$arr = split($pat, $fp[$i]); // Формируем массив значений $arr из данных файла

}


Различные функции по работе с файлами:

fread($f, $numberbytes) - читает из файла $f $numberbytes символов и возвращает строку этих символов.

fwrite($f, $st); - записывает в файл $f содержимое строки $st. .

fgets($f, $dlina); - считывает из файла одну строку, заканчивающеюся символом новой строки \n.

fputs($f, $st); - аналогична функции fwrite().

Конструкция or die().

Проанализировать результат функции fopen() и если он не равен false, вывести работу сценария позволяет конструкция or die ($err_message). Синтаксис данной конструкции следующий:

($f=fopen("/homa/user/file.txt","r")) or die ("error");

1.6 Базы данных и PHP


Пример 1. Создание соединения и выбор СУБД для MySQL

/* Некоторые переменные */
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";
/* создать соединение */
MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу создать соединение ");
mysql_select_db("$dbName");

/* Осуществляем определенные операции с СУБД */

/* Закрыть соединение */
MYSQL_CLOSE();

?>


Обратите внимание. Для работы с MySQL из PHP нет необходимости в каких либо дополнительных модулях. MySQL «родная» СУБД для PHP.


Пример 2. Создание соединения и выбор базы данных для MS SQL Server.

/* Некоторые переменные */
$hostname = "localhost";
$username = "myusername";
$password = "mypassword";
$dbName = "products";

/* создать соединение */
$link = MSSQL_CONNECT($hostname,$username,$password) or die ("Не могу создать соединение ");
Mssql_select_db ("$dbName“, $link);

/* Осуществляем определенные операции с СУБД */

/* Закрыть соединение */
MSSQL_CLOSE();

?>

Обратите внимание. Для работы с MS SQL Server из PHP (и другими СУБД кроме MySQL), необходимо подключить специальный модуль, соответствующий данной СУБД. Данная операция осуществляется в файле php.ini, посредством удаления знака «;» в соответсвующей строке файла, т.е.

Фрагмент файла php.ini:

[PHP_MSSQL] (extension=php_mssql.dll)


Обратите внимание, что если Вы используется в качестве сервера хорошо известную платформу MS SQL Server Express Edition, то строка соединения с базой данных «TEST» (в режиме аутоинтификации SQL Server, т.е. по логину «sa») будет иметь следующий вид:


$link = mssql_connect (".\SQLEXPRESS","sa","") or die ("Could not connect");

Mssql_select_db("TEST", $link);

?>


Обратите внимание на имя сервера СУБД ".\SQLEXPRESS".

Пример 3. Создание новой таблицы в MS SQL с помощью PHP


$link = mssql_connect (“127.0.0.1”,"sa","") or die ("Could not connect");

Mssql_select_db("GRAF", $link);


$strSQL = "CREATE TABLE scenar( // Таблица со значением результатов прогноза

data1 datetime,

nomer_sc INTEGER,

E decimal (20,2),

O decimal (20,2),

GT decimal (20,2),

TR decimal (20,2),

P decimal (20,2),

Y decimal (20,2),

M decimal (20,2),

N decimal (20,2),

X decimal (20,2),

CO decimal (20,2)

)";

$roma10 = mssql_query($strSQL);

if($roma10 ==1)

echo("Таблица scenar создана успешно
");

?>


Пример 4. Заполнение таблицы в MS SQL с помощью PHP данными из файла


$link = mssql_connect (“127.0.0.1”,"sa","") or die ("Could not connect");

Mssql_select_db("GRAF", $link);

$fp = file("baza/data2.txt"); // В файле data2.txt находятся исходные данные


$strSQL = "delete from scenar";

$roma = mssql_query($strSQL); // Удаляем предыдущие данные


for($i = 0; $i < count($fp); $i++){

$pat =";";

$arr = split($pat, $fp[$i]); // Разбиваем текущую строку файла на массив значений по “;”

$strSQL ="SET DATEFORMAT dmy"; //День-месяц-год

$roma = mssql_query($strSQL);

$strSQL = "insert into scenar(data1, nomer_sc, E, O, GT, TR, P, Y, M, N, X, CO)

values('$arr[0]',$arr[1] , $arr[2], $arr[3], $arr[4],$arr[5] , $arr[6], $arr[7], $arr[8],$arr[9] , $arr[10], $arr[11])";

$roma = mssql_query($strSQL); //Выполняем команду вставки записей

}

?>


Фрагмент файла data2.txt

01.07.2001;1;29.33;25.89;175.98;82.124;102.2;2193.884;12.7;1088.143;28.3;926.828;

01.07.2001;2;29.33;25.89;205.31;46.928;102.2;2229.08;12.6;1132.138;26.6;941.493;

01.07.2001;3;29.33;25.89;190.645;64.526;102.2;2193.45;12.6;1097.1;27.5;927.7;

01.07.2001;4;29.33;25.89;284.501;87.99;102.2;2190.951;12.7;1173.2;28.6;941.493;

01.10.2001;1;31;15;305;105;102.83;2543.18;13.45;1378.74;29.44;1091.46


Обратите внимание. Если файл с данными большой (например, имеет тысячи записей и более), то лучше использовать массовую загрузку данных в MS SQL Server командой BULK INSERT. Это будет намного быстрее.


Пример 5. Выполнение запроса к базе по заданному критерию


$link = mssql_connect (“127.0.0.1”,"sa","") or die ("Could not connect");

Mssql_select_db("GRAF", $link);

$strSQL1 = "select * from scenar where nomer_sc=1 AND data1 >= ‘2008-01-01’";

$zapr1=mssql_query($strSQL1);

$idx=1;

while($r1 = mssql_fetch_array($zapr1))

{

$E_1[$idx] = $r1["E"]; // Считываем значения переменных из Базы в массивы переменных

$O_1[$idx] = $r1["O"];

$GT_1[$idx] = $r1["GT"];

$TR_1[$idx] = $r1["TR"];

$P_1[$idx] = $r1["P"];

$Y_1[$idx] = $r1["Y"];

$M_1[$idx] = $r1["M"];

$N_1[$idx] = $r1["N"];

$X_1[$idx] = $r1["X"];

$CO_1[$idx] = $r1["CO"];

$idx++;

}

// Осуществляем различные манипуляции с массивами переменных $E_1[$idx] и др.

?>

Отметим, что PHP поддерживает ряд функций спефифичных для MySQL, в частности, следующие:

mysql_affected_rows -- Возвращает число затронутых прошлой операцией рядов.

mysql_change_user --  Изменяет пользователя для указанного соединения.

mysql_client_encoding -- Возвращает кодировку соединения

mysql_close -- Закрывает соединение с сервером MySQL.

mysql_connect -- Открывает соединение с сервером MySQL.

mysql_create_db -- Создаёт базу данных MySQL.

mysql_data_seek -- Перемещает внутренний указатель в результате запроса.

mysql_db_name -- Возвращает название базы данных.

mysql_db_query -- Переключается к указанной базе данных и посылает запрос.

mysql_drop_db -- Уничтожает базу данных MySQL.

mysql_errno --  Возвращает численный код ошибки выполнения последней операции с MySQL.

mysql_error --  Возвращает строку ошибки последней операции с MySQL.

mysql_escape_string --  Экранирует SQL спецсимволы для mysql_query.

mysql_fetch_array --  Обрабатывает ряд результата запроса, возвращая ассоциативный массив, численный массив или оба.

mysql_fetch_assoc --  Обрабатывает ряд результата запроса и возвращает ассоциативный массив.

mysql_fetch_field --  Возвращает информацию о колонке из результата запроса в виде объекта.

mysql_fetch_lengths --  Возвращает длину каждого поля в результате.

mysql_fetch_object -- Обрабатывает ряд результата запроса и возвращает объект.

mysql_fetch_row -- Обрабатывает ряд результата запроса и возвращает неассоциативный массив.

mysql_field_flags --  Возвращает флаги указанного поля результата запроса.

mysql_field_len --  Возвращает длину указанного поля.

mysql_field_name --  Возвращает название указанной колонки результата запроса.

mysql_field_seek --  Устанавливает внутренний указатель поля на переданное смещение.

mysql_field_table --  Возвращает название таблицы, которой принадлежит указанное поле.

mysql_field_type --  Возвращает тип указанного поля результата запроса.

mysql_free_result -- Освобождает память от результата запроса

mysql_get_client_info -- Возвращает данные о MySQL-клиенте

mysql_get_host_info -- Возвращает информацию о соединении с MySQL

mysql_get_proto_info -- Возвращает информацию о протоколе MySQL

mysql_get_server_info -- Возвращает информацию о сервере MySQL

mysql_info --  Возвращает информацию о последнем запросе

mysql_insert_id --  Возвращает ID, сгенерированный при последнем INSERT-запросе.

mysql_list_dbs --  Возвращает список баз данных, доступных на сервере.

mysql_list_fields -- Возвращает список колонок таблицы.

mysql_list_processes -- Возвращает список процессов MySQL.

mysql_list_tables -- Возвращает список таблиц базы данных MySQL.

mysql_num_fields -- Возвращает количество полей результата запроса.

mysql_num_rows -- Возвращает количество рядов результата запроса.

mysql_pconnect --  Устанавливает постоянное соединение с сервером MySQL.

mysql_ping -- Проверяет соединение с сервером и пересоединяется при необходимости.

mysql_query -- Посылает запрос MySQL.

mysql_real_escape_string --  Экранирует специальные символы в строках для использования в выражениях SQL.

mysql_result -- Возвращает данные результата запроса.

mysql_select_db -- Выбирает базу данных MySQL.

mysql_stat -- Возвращает текущий статус сервера.

mysql_tablename -- Возвращает имя таблицы, содержащей указанное поле.

mysql_thread_id -- Возвращает ID текущего потока.

mysql_unbuffered_query --  Посылает MySQL SQL-запрос без авто-обработки результата и её буферизации.

О

тметим, что для PHP существуют программы “билдеры” для ускорения процесса разработки WEB-страниц, взаимодействующих с СУБД, например, PHP Report Maker.


1   2   3   4   5

Похожие:

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconОтчет по обеспеченности учебниками; Оформление новых учебников
...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconЛ. А. Москвина Проектирование визуальных интерфейсов и приложений баз данных
В настоящем учебном пособии затронуты только две из перечисленных выше возможностей Delphi, а именно проектирование визуальных интерфейсов...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconУчебно-методическое пособие Таганрог 2010 удк 67. 99(2)94я73 Батычко В. Т. Учебно-методическое пособие по курсу «Криминология»
Батычко В. Т. Учебно-методическое пособие по курсу «Криминология». – Таганрог. Изд-во тти юфу, 2010. – С. 29

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconУчебно-методическое пособие по курсу «культурология» для самостоятельной подготовки к семинарским занятиям студентов угма
Данное Учебно-методическое пособие включает тематический план лекций и семинарских занятий, перечень рекомендуемой литературы, основной...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconМетодические указания к лабораторным работам по курсу "Базы данных"
Методические указания к лабораторным работам по курсу "Базы данных": Работа с базами данных. Субд access. / Московский государственный...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconЛ. Ф. Лебеденко С. Г. Лапова базы данных
Методические указания предназначены для использования в процессе лабораторного практикума и курсового проектирования по курсу "Базы...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconУчебно-методическое пособие Ярославль, 2009 Скопин А. А., Разработка и технологии производства рекламного продукта: Учебно-методическое пособие. Ярославль, «Ремдер», 2009 118 с
Учебное пособие предназначено для студентов, аспирантов, преподавателей. Актуальность рассматриваемых вопросов делает пособие привлекательным...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconУчебно-методическое пособие Волгоград 2008
Учебно-методическое пособие предназначено для студентов направления 210400 Телекоммуникации и специальности 210406 Сети связи и системы...

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconУчебно-методическое пособие по курсу философия права
Учебно-методическое пособие по курсу «Философия права». Таганрог: Изд-во трту, 2005. 23 с

Учебно-методическое пособие по курсу «Базы данных» по теме разработка web-приложений iconУчебно-методическое пособие по специальному курсу рассмотрено и одобрено методической комиссией юридического факультета. Печатается по решению совета юридического факультета Кубанского государственного аграрного университета
Басацкий Е. М., Ильницкая Л. И. Процессуальные решения на предварительном следствии: Учебно-методическое пособие по специальному...


Разместите кнопку на своём сайте:
lib.convdocs.org


База данных защищена авторским правом ©lib.convdocs.org 2012
обратиться к администрации
lib.convdocs.org
Главная страница