PHP: Ingres II Functions - Manual

downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

ingres_autocommit PDO_INFORMIX DSN

Last updated: Sat, 27 Jan 2007

view this page in

# LXVII. Ingres II Functions

# Введение

These functions allow you to access Ingres II database servers.

> Замечание: If you already used PHP extensions to access other database servers, note that Ingres doesn't allow concurrent queries and/or transaction over one connection, thus you won't find any result or transaction handle in this extension. The result of a query must be treated before sending another query, and a transaction must be committed or rolled back before opening another transaction (which is automatically done when sending the first query).

# Требования

To compile PHP with Ingres support, you need the Ingres OpenAPI library and header files.

# Установка

Это расширение PECL не поставляется вместе с PHP. Дополнительная информация, такая как новый версии, скачивание, исходные файлы, информация о разработчике и CHANGELOG, могут быть найдены здесь: http://pecl.php.net/package/ingres.

In order to have these functions available, you must compile PHP with Ingres support by using the `--with-ingres[=DIR]` option, where DIR is the Ingres base directory, which defaults to `/II/ingres`. If the II_SYSTEM environment variable isn't correctly set you may have to use `--with-ingres=DIR` to specify your Ingres installation directory.

When using this extension with Apache, if Apache does not start and complains with "PHP Fatal error: Unable to start ingres_ii module in Unknown on line 0" then make sure the environment variable II_SYSTEM is correctly set. Adding "export II_SYSTEM="/home/ingres/II" in the script that starts Apache, just before launching httpd, should be fine.

# Настройка во время выполнения

Поведение этих функций зависит от установок в `php.ini`.

Таблица 1. Ingres configuration options

Name | Default | Changeable | Changelog
--- | --- | --- | ---
ingres.allow_persistent | "1" | PHP_INI_SYSTEM | Available since PHP 4.0.2.
ingres.max_persistent | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.2.
ingres.max_links | "-1" | PHP_INI_SYSTEM | Available since PHP 4.0.2.
ingres.default_database | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
ingres.default_user | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
ingres.default_password | NULL | PHP_INI_ALL | Available since PHP 4.0.2.
ingres.report_db_warnings | "1" | PHP_INI_ALL | Available since version 1.1.0 of the PECL extension.
ingres.cursor_mode | "0" | PHP_INI_ALL | Available since version 1.1.0 of the PECL extension.
ingres.blob_segment_length | "4096" | PHP_INI_ALL | Available since version 1.2.0 of the PECL extension.
ingres.trace_connect | "0" | PHP_INI_ALL | Available since version 1.3.1 of the PECL extension.
ingres.timeout | "-1" | PHP_INI_ALL | Available since version 1.3.1 of the PECL extension.
ingres.array_index_start | "1" | PHP_INI_ALL | Available since version 1.3.1 of the PECL extension.

Для подробного описания констант PHP_INI_*, обратитесь к документации функции ini_set().

# Типы ресурсов

Данное расширение не определяет никакие типы ресурсов.

# Предопределенные константы

Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.

`INGRES_ASSOC` (integer)

  Columns are returned into the array having the fieldname as the array index.

`INGRES_NUM` (integer)

  Columns are returned into the array having a numerical index to the fields. This index starts with 1, the first field in the result.

`INGRES_BOTH` (integer)

  Columns are returned into the array having both a numerical index and the fieldname as the array index.

`INGRES_EXT_VERSION` (string)

  Specifies the version of the Ingres Extension. Available since version 1.2.0 of the PECL extension.

`INGRES_API_VERSION` (integer)

  Specifies the version of Ingres OpenAPI the extension was built against. Available since version 1.2.0 of the PECL extension.

`INGRES_CURSOR_READONLY` (integer)

  Specifies that Ingres cursors should be opened in 'readonly' mode. Available since version 1.2.0 of the PECL extension.

`INGRES_CURSOR_UPDATE` (integer)

  Specifies that Ingres cursors should be opened 'for update'. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_MULTINATIONAL` (integer)

  Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_MULTINATIONAL4` (integer)

  Equivalent to the II_DATE_FORMAT setting of MULTINATIONAL4. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_FINNISH` (integer)

  Equivalent to the II_DATE_FORMAT setting of FINNISH. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_ISO` (integer)

  Equivalent to the II_DATE_FORMAT setting of ISO. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_ISO4` (integer)

  Equivalent to the II_DATE_FORMAT setting of ISO4. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_GERMAN` (integer)

  Equivalent to the II_DATE_FORMAT setting of GERMAN. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_MDY` (integer)

  Equivalent to the II_DATE_FORMAT setting of MDY. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_DMY` (integer)

  Equivalent to the II_DATE_FORMAT setting of DMY. Available since version 1.2.0 of the PECL extension.

`INGRES_DATE_YMD` (integer)

  Equivalent to the II_DATE_FORMAT setting of YMD. Available since version 1.2.0 of the PECL extension.

`INGRES_MONEY_LEADING` (integer)

  Specifies the currency character that should be placed at the start of a money value. Equivalent to setting II_MONEY_FORMAT to 'L:'. Available since version 1.2.0 of the PECL extension.

`INGRES_MONEY_TRAILING` (integer)

  Specifies the currency character that should be placed at the end of a money value. Equivalent to setting II_MONEY_FORMAT to 'T:'. Available since version 1.2.0 of the PECL extension.

`INGRES_STRUCTURE_BTREE` (integer)

  Specifies the default table or index structure to BTREE when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_CBTREE` (integer)

  Specifies the default table or index structure to COMPRESSED BTREE when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_HASH` (integer)

  Specifies the default table or index structure to HASH when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_CHASH` (integer)

  Specifies the default table or index structure to COMPRESSED HASH when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_HEAP` (integer)

  Specifies the default table structure to HEAP when used in combination with the table_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_CHEAP` (integer)

  Specifies the default table structure to COMPRESSED HEAP when used in combination with the table_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_ISAM` (integer)

  Specifies the default table or index structure to ISAM when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.

`INGRES_STRUCTURE_CISAM` (integer)

  Specifies the default table or index structure to COMPRESSED ISAM when used in combination with the table_structure or index_structure option when connecting. Available since version 1.4.0 of the PECL extension.

# Примеры

This simple example shows how to connect, execute a query, print resulting rows and disconnect from an Ingres database.

Пример 1. Simple Ingres Example

`<?php
// Connecting, selecting database
$link = ingres_connect('database', 'user', 'password')
or die('Could not connect: ' . ingres_error($link));
echo 'Connected successfully';
// Select from a table that exists in all Ingres databases
$query = 'SELECT * FROM iirelation';
$returncode = ingres_query($query,$link) or die('Query failed: ' .
ingres_error($link));
// Print results in HTML
// relid - table name
// relowner - table owner
echo "<table>\n";
while ($iirelation = ingres_fetch_object($link)) {
echo "\t<tr>\n";
echo "\t\t<td>" . $iirelation->relid . "</td>\n";
echo "\t\t<td>" . $iirelation->relowner . "</td>\n";
echo "\t</tr>\n";
}
echo "</table>\n";
// Commit transaction
ingres_commit($link);
// Closing connection
ingres_close($link);
?>`

add a note User Contributed Notes
Ingres II Functions
corysbrain-ondrugs at yahoo dot com
13-Feb-2007 06:57
`On the three versions of Linux/Ingres I've worked on, I've always had to modify the following line in the example above:
while ($iirelation = ingres_fetch_object($link)) {
to:
while ($iirelation = ingres_fetch_object()) {
If not, PHP will return "Undefined property" notices.
However, it's my understanding that the following is the proper way to access the database (it works as expected):
<?php
// Connecting, selecting database
$link = ingres_connect('database', 'user', 'password')
or die('Could not connect: ' . ingres_error($link));
echo 'Connected successfully';
// Select from a table that exists in all Ingres databases
$query = 'SELECT * FROM iirelation';
$rs = ingres_query($query,$link) or die('Query failed: ' .
ingres_error($link));
// Print results in HTML
// relid - table name
// relowner - table owner
echo "<table>\n";
while ($iirelation = ingres_fetch_object($rs)) {
echo "\t<tr>\n";
echo "\t\t<td>" . $iirelation->relid . "</td>\n";
echo "\t\t<td>" . $iirelation->relowner . "</td>\n";
echo "\t</tr>\n";
}
echo "</table>\n";
// Commit transaction
ingres_commit($link);
// Closing connection
ingres_close($link);
?>`
mail at hannes-reinecke dot de
12-Dec-2002 03:09
`If you try to use the 'Embedded Ingres' as it is delivered with certain CA products (e.g. TNG UHD), the referenced library '-lingres' is not available. You need to add '-lq -lframe' instead.`
burckhardtNOSPAM at SNIPITOFFgsf dot de
23-Jan-2002 10:07
`Hi,
I am currently migrating from MySQL to Ingres. Generally, almost ALL INGRES-functions that use arrays start with counter=1, NOT counter=0. Also, whereas MySQL-functions use $result as an argument, INGRES-functions use $connection instead.
Florian`
add a note
ingres_autocommit PDO_INFORMIX DSN

Last updated: Sat, 27 Jan 2007
show source | credits | stats | sitemap | contact | advertising | mirror sites
Copyright © 2001-2007 The PHP Group
All rights reserved.
This mirror generously provided by: Yahoo! Inc.
Last updated: Sat Mar 10 10:36:09 2007 PST