Информационные технологииStfw.Ru 🔍

Ingres II

Взаимодействие с базами данных
🕛 01.11.2006, 13:59
Для использования этих функций необходимо скомпилировать РНР

с поддержкой Ingres, используя параметр -with-ingres. Для этого необходима библиотека Open API и заголовочные файлы, включенные в Ingres II. Если переменная окружения II_SYSTEM не установлена корректно, можно использовать параметр - with-ingres=DIR, указывая 1 каталог размещения Ingres.

Если при использовании РНР-расширения web-сервер Apache ие запускается и сообщает: «PHP Fatal error: Unable to start ingresjii module in Unknown on line 0», удостоверьтесь, что переменная окружения II_SYSTEM установлена корректно. Должно помочь добавление «export II_SYSTEM="/horae/ingres/II» в сценарий, запускающий Apache перед строкой запуска httpd.

Ingres не допускает конкурентные запросы/транзакции для одного подключения. Поэтому результат запроса должен обрабатываться до выполнения следующего запроса, а транзакция совершаться (или отменяться) до начала следующей транзакции.

ingres_connect

Подключение к серверу Ingres II

resource ingres_connect ([string database [, string username [. string password]]])

Возвращает дескриптор подключения Ingres II или FALSE - при ошибке.

Аргумент database имеет синтаксис: [node_id: :]dbname[/svr_class]. Для неуказанных параметров используются значения из файла конфигурации php.ini ingres.default_database, Ingres.default_user и Ingres. default_password.

Поскольку все ingres-функции используют дескриптор последнего открытого подключения по умолчанию, его не требуется сохранять, если имеется всего одно подключение. Подключение закрывается при завершении сценария или явном вызове ingres_close().

<?php
$link = ingres_connect
("mydb". "user", "pass")
or die ("Could not connect");
print ("Connected successfully"):
ingres_close (Slink).
// или просто ingres_close(); ?>

См. также: ingres_pconnect() и ingres_close().

ingres_pconnect

Создание устойчивого подключения к ВД сервера Ingres II

resource ingres_pconnect ([string database [, string username [, j string password]]])

Возвращает дескриптор подключения или FALSE - при ошибке.

ingres_pconnect() действует подобно ingres_connect() с двумя отличиями.

Перед подключением функция пытается проверить, имеется ли уже открытое (устойчивое) подключение с параметрами (имя БД, пользователя и пароль), аналогичными указанным. Если такое подключение обнаруживается, то возвращается его идентификатор вместо создания нового подключения.

При завершении сценария подключение не закрывается, а остается действительным для дальнейшего использования. (Функция ingres_ close() не может закрыть подключения, созданные с помощью ingres_ pconnect().)

См. также: ingres_connect() и ingres_close().

Ingres_close

Закрытие подключения

bool ingres_dose ([resource link])

Возвращает TRUE или FALSE - при ошибке.

Идентификатор закрываемого подключения указывается в аргументе; если его не указывать, то закрывается последнее открытое данным сценарием подключение.

Фактически использование данной функции не является обязательным, так как РНР автоматически закрывает все незакрытые неустойчивые подключения при завершении сценария. Заметьте: устойчивые подключения не закрываются.

См. также: ingres_connect() и ingres_pconnect().

ingres_query

Выполнение запроса к БД

bool ingres_query (string query [, resource link])

Возвращает TRUE или FALSE - при ошибке.

Запрос становится частью текущей транзакции (при необходимости открывается новая). Для завершения транзакции вызывается ingres_ commit(), а с помощью ingres_roTlback() можно отменить транзакцию. Функцией ingres_autocommit() можно установить режим немедленного выполнения запроса. Некоторые запросы SQL не могут выполняться данной функцией: «GET DBEVENT», «PREPARE TO COMMIT», / «SAVEPOINT» и все запросы, использующие курсор.

<?php
Ingres connect
(Sdatabase. $user. $password),
ingres_query ("select * from table"),
while ($row = ingres_fetch_row()) {
echo $row[l];
echo $row[2], } ?>

См. также: ingres_fetch_array(), ingres_fetch_object(), ingres_fetch_row(), ingres_commit(), ingres_roTlback() и ingres_autocommit().

ingres_rollback

Отмена транзакции

bool ingres_roTlback ([resource link])

Закрывает текущую транзакцию, отменяя все изменения, внесенные запросами от начала транзакции. Новая транзакция открывается при последующем вызове ingres_query().

См. также: ingres_query(), ingres_commit() и ingres_autocommit().

ingres_commit

Завершение транзакции

boo! ingres_commit ([resource link])

Закрывает текущую транзакцию, фиксируя все изменения, внесенные запросами от начала транзакции. Новая транзакция открывается при последующем вызове ingres_query(). Функцией ingres_autocommit() можно установить режим немедленного выполнения каждого запроса.

См. также: ingres_query(), ingres_rollback() и ingres_autocomnnt().

ingres_autocommit

Переключение режима немедленного выполнения запроса

bool ingres_autocomm1t ([resource link])

При запуске сценария по умолчанию запрос(-ы) (выполненный функцией ingres_query()) необходимо завершать явно, вызовом функции ingres_commit() (или отменять транзакцию с помощью ingres_ rollbackO).

Если же (вызовом данной функции) переключить режим автовыполнения, то запросы будут выполняться немедленно, то есть после каждого запроса косвенно вызывается ingres_commit().

Повторный вызов функции переключает режим на противоположный.

См. также: ingres_query(), ingres_rollback() и ingres_commit().

ingres_num_rows

Получение числа измененных или возвращенных запросом записей

int ingres_num_rows ([resource link])

После запросов DELETE, INSERT, UPDATE функция возвращает число измененных записей, а после запросов выборки - число возвращенных записей (функция должна вызываться до разборки результата запроса функциями ingres_fetch_array(), ingres_fetch_object() или ingres_fetch_row()).

В цикле обработки результатов запроса для проверки того, все ли записи были обработаны, целесообразнее использовать возвращаемое fetch-функциями значение.

См. также: ingres_query(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row().

ingres_num_fields

Получение числа возвращенных запросом полей

int ingres_num_fields ([resource link])

См. также: ingres_query(), ingres_fetch_array(), ingres_fetch_object() n ingres_fetch_row().

ingres_fetch_row

Занесение записи в нумерованный массив

array ingres_fetch_row ([resource link])

Возвращает в массиве (нумерация полей начинается с 1) следующую запись, возвращенную запросом, или FALSE, если все записи уже были обработаны.

<?php
ingres_connect
(Sdatabase. Suser, Spassword):
ingres_query ("select * from table");
while (Srow = lngres_fetch_row()) {
echo $row[l]: // первое поле записи
echo $row[2]: } ?>

См. также: ingres_num_fields(), ingres_query(), ingres_fetch_array() и ingres_fetch_object().

ingres_fetch_array

Занесение записи в массив

array ingres_fetch_array ([int result_type [, resource link]])

Возвращает в массиве следующую запись, возвращенную запросом, или FALSE, если записей больше не имеется.

Данная функция является расширением функции ingres_fetch_row(), и она может возвращать нумерованный или ассоциативный массив (а также объединенный). Вид возвращаемого массива может указываться в аргументе result_type одной из констант: II_NUM, II_ASSOC, П_ВОТН (по умолчанию). В ассоциативных массивах индексами служат имена полей.

Если имеются одноименные поля, используется последнее имя. Для доступа к одноименным полям можно использовать числовые индексы (поля нумеруются в той последовательности, в которой указаны в запросе или в таблице) или псевдонимы.

ingres_query(select tl.fl as f t2.il as b from tl. t2):
Sresult = ingres_fetch_array():
$foo = $result["f"]; $bar = $result["b"];

Заметьте, что функция выполняется лишь незначительно медленнее, чем ingres_fetch_object(), но предоставляет дополнительную функциональность.

<?php
ingres_connect (Sdatabase. Suser. Spassword):
ingres_query ("select * from table"),
while ($row = ingres_fetch_array()) {
echo $row["user_id"]:#
используем ассоциативный массив
echo $row["fullname"]:
echo $row[l]; #
используем нумерованный массив
echo $row[2]: } ?>

См. также: ingres_query(), ingres_num_fields(), ingres_field_name(), ingres_fetch_object() и ingres_fetch_cow().

ingres_fetch_object

Получение записи в свойствах объекта

object ingres_fetch_object ([int result_type [, resource link]])

Возвращает объект, в свойствах которого находятся поля текущей записи, или FALSE, если записей более не имеется. Заметьте: осуществлять доступ к полям по их номерам невозможно (объект не может иметь численные свойства).

По скорости выполнения функция идентична ingres_fetch_array() и почти идентична ingres_fetch_row().

<?php
ingres_connect ($database. $user.
$password):
ingres_query ("select * from table");
while ($row = ingres_fetch_object())
{ echo $row->user_id;
echo $row->fullname; } ?>

См. также: ingres_query(), ingres_num_fields(), ingres_field_name(), ingres_fetch_array() и ingres_fetch_row().

ingres_field_name

Получение имени поля записи в результате запроса

string ingres_field_name (int index [, resource link])

Функция возвращает имя поля с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом, или FALSE - при ошибке.

См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row().

ingres_field_type

Получение типа поля

string ingres_field_type (int index [, resource link])

Функция возвращает имя поля с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом, или FALSE - при ошибке.

Возвращаемые типы полей: IIAPI_BYTE_TYPE, IIAPI_CHA_TYPE, IIAPI_DTE_ TYPE, IIAPIJLTJYPE IIAPIJNTJYPE, IIAPI_VCH_TYPE. Некоторые типы могут соответствовать нескольким SQL-типам в зависимости от длины поля (см. ingres_field_length()). Например, IIAPI_FLT_TYPE может соответствовать float4 или floatS. См. документацию: «Ingres/OpenAPI User Guide - Appendix С».

См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row().

ngres_field_nullable

Выяснение, может ли поле принимать значение null

bool ingres_field_nullable (int index [, resource link])

Возвращает TRUE, если поле с индексом index (нумерация начинается с 1) может иметь значение NULL, иначе возвращает FALSE.

См. также: ingres_query(), ingresjium_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetcn_row().

Ingres_field_prength

Получение длины поля

int ingres_field_length (int index [, resource link])

Возвращает длину поля (максимальное число байт) с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом, или FALSE - при ошибке.

См. документацию «Ingres/OpenAPI User Guide - Appendix С».

См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row().

ingres_field_precision

Получение точности поля

int ingres_field precision (int index [, resource link])

Возвращает точность поля (только для полей, содержащих числовые значения) с индексом index (нумерация начинается с 1) набора записей, возвращенных запросом.

См. документацию «Ingres/OpcnAPI User Guide - Appendix С».

См. также: ingres_query(), ingres_num_fie1ds(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_row().

ingres_field_scale

Получение размерности поля

int ingres_field_scale (int index [, resource link]) Возвращает масштаб целочисленного ноля с индексом index. См. документацию «Ingrcs/OpenAPI User Guide - Appendix С».

См. также: ingres_query(), ingres_num_fields(), ingres_fetch_array(), ingres_fetch_object() и ingres_fetch_ieow().

Учебник по основам PHP   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉