ifx_query

(PHP 4, PHP 5 < 5.2.1)

ifx_querySend Informix query

Описание

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

Посылает query в базу данных используя идентификатор соединения.

Для запросов типа SELECT задается и открывается курсор. Остальные типы запросов сразу же запускаются.

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

Если контент столбцов TEXT (или BYTE) позволяют, вы можете использовать ifx_textasvarchar(1) и ifx_byteasvarchar(1). Это позволит получать контент столбцов TEXT (или BYTE) как обычный (но длинный) VARCHAR и не заморачиваться идентификаторов объектов BLOB.

С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситуация по умолчанию), запросы типа SELECT будут возвращать столбцы с BLOB в виде их идентификаторовs (целое число). Контент данных столбцов придется извлекать из памяти или файла успользуя специальные функции.

Список параметров

query

Строка запроса.

link_identifier

Идентификатор соединения.

cursor_def

Опциональный параметр, позволяющий задать тип курсора равным scroll и/или hold. Может быть IFX_SCROLL, IFX_HOLD, или обоими сразу, побитово сложенными (ИЛИ). Если вы опустите этот параметр, то курсор будет обычным последовательным курсором.

blobidarray

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

Возвращаемые значения

Возвращает идентификатор результата, или FALSE в случае ошибки.

Примеры

Пример #1 Вывод всех строк таблицы "orders" в виде таблицы HTML

<?php
ifx_textasvarchar
(1);      // используем "text mode" для BLOB
$res_id ifx_query("select * from orders"$conn_id);
if (! 
$res_id) {
    
printf("Не могу выполнить запрос : %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"

<?php

// Создаем идентификаторы BLOB для столбцов BYTE и TEXT
$textid ifx_create_blob(00"Столбец Text в памяти");
$byteid ifx_create_blob(10"Столбец Byte в памяти");

// Сохраняем идентификаторы BLOB в массиве 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) {
    
/* ... error ... */
}

// free result id
ifx_free_result($res_id);
?>

Смотрите также

  • ifx_connect() - Открытие соединения с базой данных Informix