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