Учебник РНР
Назад Вперёд

ifx_query

(PHP 3>= 3.0.3, PHP 4)

ifx_query - отправляет Informix-запрос/query.

Описание

int ifx_query (string query, int link_identifier [, int cursor_type [, mixed blobidarray]])

Возвращает: положительный результирующий идентификатор Informix при успехе или FALSE - при ошибке.

Ресурс "result_id" используется другими функциями для результатов запросов. Устанавливает "affected_rows" для запрашивания функцией ifx_affected_rows().

ifx_query() отправляет запрос текущей активной базе данных на сервере, ассоциированном со специфицированным идентификатором ссылки.

Выполняет запрос query в соединении conn_id. Для запросов "select" объявляется и открывается курсор. Необязательный параметр cursor_type позволяет создать "scroll" и/или "hold"-курсор. Это битовая маска, которая может быть IFX_SCROLL, IFX_HOLD или и то и другое вместе. Не-select запросы выполняются немедленно. IFX_SCROLL и IFX_HOLD являются символическими константами и как таковые не должны заключаться в кавычки. Если вы опустили этот параметр, курсор является нормальным последовательным курсором.

Для любого типа запроса количество задействованных рядов (приблизительное или реальное) сохраняется для запрашивания функцией by ifx_affected_rows().

Если у вас в запросе имеются столбцы BLOB (BYTE или TEXT), вы можете добавить параметр blobidarray, содержащий соответствующие "blob ids", и должны заменить эти столбцы знаком "?" в тексте запроса.

Если содержимое столбца TEXT (или BYTE) позволяет, вы можете также использовать "ifx_textasvarchar(1)" и "ifx_byteasvarchar(1)". Это даст возможность рассматривать столбцы TEXT (или BYTE) точно так, как если бы они были простыми (но long) столбцами VARCHAR для select-запросов, и вам не нужно будет беспокоиться о blob id'ах.

При наличии ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситуация по умолчанию), select-запросы будут возвращать BLOB-столбцы как blob id'ы (целочисленное значение). Вы можете получить значение blob как строку или файл с помощью blob-функций (см. далее).

См. также ifx_connect().

Пример 1. Показать все ряды таблицы "orders" как таблицу html

ifx_textasvarchar(1);      // использовать "text mode" для blobs
$res_id = ifx_query("select * from orders", $conn_id);
if (! $res_id) {
    printf("Can't select orders : %s\n<br>%s<br>\n", ifx_error());
    ifx_errormsg();
    die;
}
ifx_htmltbl_result($res_id, "border=\"1\"");
ifx_free_result($res_id);

Пример 2. Вставить некоторые значения в таблицу "catalog"

// создать blob id'ы для byte и text-столбцов
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");
                      // сохранить blob id'ы в массиве blobid
$blobidarray[] = $textid;
$blobidarray[] = $byteid;
                      // запустить запрос
$query = "insert into catalog (stock_num, manu_code, " .
         "cat_descr,cat_picture) values(1,'HRO',?,?)";
$res_id = ifx_query($query, $conn_id, $blobidarray);
if (! $res_id) {
  ... ошибка ...
}
                     // освободить result id
ifx_free_result($res_id);


Назад Оглавление Вперёд
ifx_prepare Вверхifx_textasvarchar