ifx_query
(PHP 4, PHP 5 < 5.2.1)
ifx_query — Send Informix query
Описание
$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(0, 0, "Столбец Text в памяти");
$byteid = ifx_create_blob(1, 0, "Столбец 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);
?>