Функции Язык программирования PHP

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

Глава 9. Выражения

Если значение первого подвыражения TRUE (не нуль), то вычисляется второе подвыражение, которое становится результатом всего условного выражения. Иначе вычисляется третье выражение, которое и становиться значением.

Следующий пример должен помочь понять pre- и post-increment и выражения:

function double($i) { return $i*2; } $b = $a = 5; /* присвоить значение 5 
переменным $a и $b */ $c = $a++; /* post-increment, присвоить оригинальное значение 
$a (5) переменной $c */ $e = $d = ++$b; /* pre-increment, присвоить увеличенное 
значение $b (6) переменным $d и $e */ /* с этого места $d и $e равны 6 каждая 
*/ $f = double($d++); /* присвоить дважды значение $d до инкремента, 
2*6 = 12, переменной $f */ $g = double(++$e); /* присвоить дважды значение $e 
после  инкремента, 2*7 = 14, переменной $g */ $h = 
$g += 10; /* сначала $g увеличивается на 10 и останавливается на значении 24. 
Значение присвоения (24) присваивается затем переменной $h, и $h получает окончательное 
значение - также 24 . */