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

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