- •Введение
- •Часть 1. Технологии работы с базами данных
- •Часть 2. Проектирование ис и разработка базы данных для некоторой предметной области и программного приложения для работы с ней
- •Лабораторная работа 1 создание и модификация таблиц базы данных Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Insert into имя_таблицы [(поле [,поле]...)]
- •Values (константа [,константа]...)
- •Контрольные вопросы
- •Лабораторная работа 2 выбор и модификация данных таблиц Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Варианты заданий на составление запросов по выборке информации из таблиц базы данных
- •Варианты заданий на составление запросов по модификации информации из таблиц базы данных
- •Контрольные вопросы
- •Лабораторная работа 3 полномочия на использование схемы бызы данных. Работа с внешними схемами базы данных Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы:
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 4 реализация простейших операций работы с базой данных средствами встроенного sql Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 5
- •Последовательность выполнения лабораторной работы
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 6
- •Последовательность выполнения лабораторной работы:
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •2. Средства отслеживания ошибок
- •3. Непосредственное и подготавливаемое выполнение операторов sql
- •4. Использование параметров при выполнении
- •5. Настройка доступа к источнику данных
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 8 выборка данных с использованием средств odbc Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Лабораторная работа 9 доступ к базам данных посредством cgi-скрипта, написанного на языке esql/c Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Лабораторная работа 10 использование языка php для доступа к базам данных Цель работы
- •Содержание работы и методические указания к ее выполнению
- •Последовательность выполнения лабораторной работы
- •Требования к разрабатываемой программе
- •Варианты заданий
- •Контрольные вопросы
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа 13
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа 14
- •Последовательность выполнения лабораторной работы:
- •Контрольные вопросы
- •Лабораторная работа 15
- •Операторы языка sql
- •1. Операторы описания
- •2. Операторы манипуляции данными
- •3. Операторы определения транзакций
- •4. Операторы определения прав доступа
- •5. Встроенный sql
- •6. Триггеры и процедуры
Лабораторная работа 10 использование языка php для доступа к базам данных Цель работы
Ознакомиться с базовыми конструкциями языка PHP с целью написания с их использованием простейших PHP-программ доступа к базам данных.
Содержание работы и методические указания к ее выполнению
Для выполнения работы необходимо
ознакомиться с синтаксисом языка PHP;
изучить особенности передачи значений переменных HTML-формы в переменные PHP;
ознакомиться c набором функций для общения с СУБД PostgreSQL;
с использованием средств языка PHP разработать и отладить программу доступа к базе данных.
Язык РНР - это действующий на стороне сервера встраиваемый в HTML язык, имеющий синтаксис, близкий к языку Си. Язык РНР дает возможность вставлять в файлы HTML инструкции языка PHP для создания динамического содержания. Эти инструкции обрабатывает препроцессор-интерпретатор РНР и заменяет их тем содержимым, которое производит этот код. PHP-программа может целиком состоять из конструкций языка PHP, а может быть смесью конструкций языков PHP и HTML. Стандартное расширение файла с PHP-программой - php.
Одним из распространенных применений РНР является работа с базами данных. Для целого ряда баз данных РНР имеет собственную поддержку, а другие доступны через ODBC-функции РНР. При вызове PHP-программы URL-адрес должен содержать номер порта, через который работает PHP:
html://fpm.ami.nstu.ru:81/~pmxxyy/t1.php
К особенностям языка PHP относятся:
возможность встраивать конструкции языка PHP в HTML-документ;
возможность включать в PHP-программу файлы;
наличие достаточного набора встроенных функций;
возможность определять собственные переменные, строки, массивы, объекты;
наличие необходимого набора управляющих структур;
возможность вводить собственные функции.
Одна из наиболее удобных особенностей PHP - это способность автоматически передавать значения переменных из HTML-форм в переменные PHP. PHP автоматически генерирует массивы $_POST, $_GET, $_REQUEST и другие, имена элементов которых совпадают с именами объектов в HTML-форме и содержащих значения данных объектов. Массивы эти ассоциативные, т.е. если в форме присутствовала переменная "a", то она будет передана как $_POST["a"], $_GET["a"] или $_REQUEST["a"] соответственно. В результате отпадает необходимость в выполнении рутинного преобразования, связанного с разбором последовательности
имя=значение&имя1=значение1&...&имяN=значениеN
Для связи с любой из СУБД РНР в своем наборе имеет ряд функций, которые очень похожи между собой и имеют одинаковую логику работы и аналогичные параметры.
В приведенной ниже таблице представлен минимальный набор функций, необходимых для написания PHP-программ, общающихся с СУБД PostgreSQL.
1. |
resource Pg_connect (строка_соединения) |
- cоздать соединение с сервером PostgreSQL |
. |
Входные параметры: |
Строка,содержащая параметры соединения (адрес сервера, порт, имя базы данных, имя пользователя, пароль и пр.) Пример: $dbconn = pg_connect ("host=fpm2 port=5432 dbname=students user=pm2101 password=pass"); |
. |
Возвращаемое значение: |
идентификатор соединения, если соединение прошло успешно, и FALSE в противном случае. |
2. |
resource Pg_query (id_соединения, строка_запроса) |
- выполнить запрос к базе |
. |
Входные параметры: |
id_соединения- идентификатор соединения; строка_запроса- строка SQL-запроса; |
. |
Возвращаемое значение: |
Результат в виде ресурса или FALSE |
3. |
array Pg_fetch_row(resource результат_запроса, int номер_строки) |
- получить строку запроса как нумерованный массив |
|
array Pg_fetch_assoc (resource результат_запроса, int номер_строки) |
- получить строку запроса как ассоциативный массив |
. |
Входные параметры: |
результат_запроса- идентификатор результата, возвращенный функцией Pg_query() (только для запросов типа select); номер_строки- целое число. |
. |
Возвращаемое значение: |
строка таблицы базы данных, возвращаемая как массив. |
4. |
string current (array row) |
- получить очередное поле из строки таблицы базы данных. |
. |
Входные параметры: |
array row- строка таблицы базы данных, возвращенная функциейifx_fetch_row(). |
. |
Возвращаемое значение: |
очередное поле строки таблицы. |
5. |
string next (array row) |
- получить следующее поле из строки таблицы базы данных. |
. |
Входные параметры: |
array row- строка таблицы базы данных, возвращенная функциейifx_fetch_row(). |
. |
Возвращаемое значение: |
следующее поле строки таблицы. |
6. |
int reset( array$row) |
- перейти в начало строки. |
. |
Входные параметры: |
array row- строка таблицы базы данных, возвращенная функциейifx_fetch_row(). |
. |
Возвращаемое значение: |
нулевая позиция строки результата. |
7. |
string key( array$row) |
- перейти в начало строки. |
. |
Входные параметры: |
array row- строка таблицы базы данных, возвращенная функциейifx_fetch_row(). |
. |
Возвращаемое значение: |
имя очередного поля строки результата. |
8. |
int Pg_affected_rows (resource result_id) |
- получить число столбцов, обработанных запросом |
. |
Входные параметры: |
result_id- результат, возвращенный функциейPg_query(). |
. |
Возвращаемое значение: |
Возвращается число столбцов, обработанных запросом, ассоциированных с result_id.Для вставок, обновлений и удалений - это реальное количество обработанных столбцов. Для выборок - ожидаемое количество. |
9. |
bool pg_free_result (resource result_id) |
- освободить ресурсы запроса |
. |
Входные параметры: |
result_id- результат, возвращенный функциейPg_query(). |
. |
Возвращаемое значение: |
Освобождает ресурсы, занятые запросом с идентификатором результата result_id.Возвращает 0 в случае ошибки. |
10. |
bool pg_close ( resource link_identifier) |
- закрыть соединение с PostgreSQL |
. |
Входные параметры: |
link_id- идентификатор соединения; |
. |
Возвращаемое значение: |
|
Общая схема написания PHP-программы, выполняющей взаимодействие с базой данных, мало отличается от структуры CGI-скрипта, написанного любыми другими средствами, разница состоит лишь в используемых средствах:
подключиться к серверу баз данных и зарегистрироваться;
выбрать базу данных, которая будет использоваться;
отправить запрос SQL на сервер и получить данные;
отключиться от сервера баз данных.
При этом остаются актуальными все замечания, сделанные в предыдущей лабораторной работе относительно установки переменных окружения и обеспечения мер безопасности при работе с базой данных.