|
(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); |
|
| |