
- •Лабораторная работа 15-16 (8 часов) Разработка собственной базы данных в php
- •Теоретические сведения Стандартные функции php для работы с MySql
- •1) Mysql_connect()
- •2) Mysql_select_db()
- •Int mysql_select_db (string имя_базы_данных [, int идентификатор_соединения])
- •3) Mysql_close()
- •Int mysql_close ([int идентификатор_соединения])
- •4) Mysql_query()
- •Int mysql_query (string запрос [, int идентификатор_соединения])
- •5) Mysqlaffected_rows()
- •Int mysql_affected_rows ([int идентификатор_соединения])
- •6) Mysql_num_rows()
- •Int mysql_num_rows(int результат)
- •7) Mysql_result()
- •Int mysql_result (int идентификатор_результата, int запись [, mixed поле])
- •8) Mysql_fetch_row()
- •9) Mysql_fetch_array()
- •Простейшая поисковая система
- •Сортировка таблиц
- •Поддержка odbc в php
- •1) Odbc_connect()
- •Int odbc_connect (string источник_данных, string имя_пользователя, string пароль [, int тип_курсора])
- •5) Odbc_exec()
- •Int odbc_exec (int идентификатор_соединения , string запрос)
- •6) Odbc_result_all()
- •Int odbc_result_all (int идентификатор_результата [, string формат_таблицы])
- •7) Odbc_free_result()
- •Int odbc_free_result (int идентификатор_результата)
- •Microsoft Access и php
- •Проект: каталок ссылок
- •Задание на лабораторную работу
- •Отчет о выполненной работе должен содержать:
- •Вопросы к защите лабораторной работы
Поддержка odbc в php
Функции ODBC в РНР, обычно называемые общими функциями ODBC, не только обеспечивают типовую поддержку ODBC, но и позволяют работать с некоторыми СУБД, обладающими собственным API, через стандартный ODBC API. К числу последних относятся следующие СУБД:
Adabas D;
IODBC;
IBM DB2;
Solid;
Sybase SQL Anywhere.
Обратите внимание: при работе с перечисленными СУБД стандартный механизм ODBC на самом деле не используется. Просто поддерживаемые в РНР общие функции ODBC применяются для взаимодействия с базами данных. Это удобно, поскольку при переходе на другую ODBC-совместимую СУБД (или СУБД из приведенного выше списка) все ваши сценарии будут нормально работать.
Поддержка ODBC встроена в комплект поставки РНР, поэтому вам за редкими исключениями практически не придется заниматься специальной настройкой.
В настоящее время существует около 40 общих функций ODBC. Впрочем, для выборки информации из ODBC-совместимой базы данных вполне достаточно нескольких функций, описанных ниже. Полный список общих функций ODBC в РНР приведен в документации (http://www.php.net/manual).
1) Odbc_connect()
Перед тем как обращаться к ODBC-совместимой базе данных с запросами, необходимо сначала установить с ней связь. Соединение создается функцией ocbc_connect(). Синтаксис функции odbc_connect():
Int odbc_connect (string источник_данных, string имя_пользователя, string пароль [, int тип_курсора])
Параметр источник_данных определяет ODBC-совместимую базу данных, с которой вы пытаетесь установить связь. В параметрах имя_пользователя и пароль, как нетрудно догадаться, передаются имя пользователя и пароль, необходимые для подключения к источнику данных. Необязательный параметр тип_курсора предназначен для устранения проблем, возникающих при работе с некоторыми драйверами ODBC. Он может принимать одно из четырех возможных значений:
SQL_CUR_USE_IF_NEEDED;
SQL_CURSOR_USE_ODBC;
SQL_CUR_USE_DRIVER;
SQL CUR DEFAULT.
Использовать odbc_connect() в программе несложно.
Пример:
<? odbc_connect("myAccessDB", "user", "secret") or die( "Could not connect to ODBC database"); ?>
Функция используется для открытия восстанавливаемых (persistent) соединений с базами данных. Она экономит системные ресурсы, поскольку odbc_pconnect() проверяет, не было ли данное соединение открыто ранее, и если было, использует предыдущее соединение.
2) odbc_close()
После завершения работы с ODBC-совместимой базой данных соединение необходимо закрыть, чтобы освободить все ресурсы, используемые открытым соединением. Соединение закрывается функцией odbc_close():
void odbc_close ([int идентификатор_соединения])
В параметре идентификатор_соединения передается идентификатор открытого соединения. Рассмотрим небольшой пример:
<? $connect=odbc_connect("myAccessDB", "user", "secret") or die("Could not connect to ODBC database"); print "Currently connected to ODBC database!"; odbc_close($connect); ?>
3) odbc_prepare()
Перед непосредственной обработкой запрос необходимо "подготовить". Задача решается функцией odbc_prepare():
int odbc_prepare (int идентификатор_соединения , string запрос)
В параметре идентификатор_соединения передается идентификатор соединения, возвращаемый функцией odbc_connect(). В параметре запрос передается текст запроса, который должен быть выполнен сервером. Если запрос не может быть выполнен, функция возвращает FALSE; в противном случае возвращается идентификатор результата, в дальнейшем используемый при вызове функции odbc_execute() (см. ниже).
4) odbc_execute()
Запрос, подготовленный функцией odbc_prepare(), выполняется функцией odbc_execute(). Синтаксис функции odbc_execute():
int odbc_execute (int идентификатор результата [, array параметры])
В параметре идентификатор_результата передается идентификатор результата, возвращаемый при успешном вызове odbc_prepare(). Необязательный параметр передается лишь в том случае, если при вызове функции передаются дополнительные данные.
Рассмотрим следующий пример:
<? $connect = @odbc_connect("myAccessDB", "user", "secret") or die("Could not connect to ODBC database"); $query = "UPDATE customers SET cust_id = \"Milano, Inc.\" WHERE cust_id=\"2000cu\""; $result = odbc_prepare($connect, $query) or die("Couldn't prepare query!"); $result = odbc_execute($result) or die("Couldn't execute query!"); odbc_close($connect); ?>
В приведенном примере продемонстрирована транзакция ODBC, при которой данные запроса не отображаются в браузере (как это обычно делается при использовании команды SELECT). Транзакция ODBC с использованием запроса QUERY описана ниже, в разделе "odbc_result_all()".