Связь и интернет Архив Программирование
   
Сделать стартовойСделать закладку            
   ПОИСК  
   
Главная / PHP / Руководство по РНР 3.0 / Справочник функций /
8  Perl
8  PHP
8  JavaScript
8  HTML
8  DHTML
8  XML
8  CSS
8  C / C++
8  Pascal и Delphi
8  Турбо Ассемблер
8  MySQL
8  CASE-технологии
8  Алгоритмы
8  Python
8  Обратная связь
8  Гостевая книга
Новости о мире


Функции работы с Informix - Программирование от RIN.RU
Функции работы с Informix



ifx_connect


ifx_connect -- открытие соединения с сервером Informix


Описание int ifx_connect(string [database], string [userid], string [password]);


При успешном завершении возвращает идентификатор соединения, при ошибке - false.


ifx_connect() устанавливает соединение к серверу Informix. Все аргументы опциональны и при их отсутствии берутся установки по умолчанию, из файла php3.ini: хост - ifx.default_host (если не определено, то библиотеки Informix используют переменную окружения $INFORMIXSERVER), пользователь - ifx.default_user, пароль - ifx.default_password (может быть не определен).


В случае повтороного вызова функции ifx_connect() с теми же параметрами, новое соединение установлено не будет, а возвратится идентификатор уже установленного соединения.pened link


Ссылка к серверу будет уничтожена, как только завершится выполнение скрипта, если только она не будет закрыта раньше вызовом ifx_close().


Смотри также ifx_pconnect(), и ifx_close().


Примеp. Соединение с базой данных Informix


$conn_id = ifx_pconnect (mydb@ol_srv1, "imyself", "mypassword");



ifx_pconnect


ifx_pconnect -- открыть устойчивое соединение с Informix


Описание int ifx_pconnect(string [database], string [userid], string [password]);


Возвращает идентификатор реальной устойчивой ссылки к Informix при успешном завершении и false при ошибке.


ifx_pconnect() работает очень похоже с ifx_connect(), но с двумя основными отличиями.


Эта функция ведет себя точно так же, как ifx_connect(), когда PHP не запкщено как модуль Апача. Во-первых, при соединении функция перво-наперво пытается найти устойчивую ссылку, которая была открыта ранее к тому же хосту с теми же параметрами (пользователь, пароль). Если поиски увенчались успехом, будет возвращен идентификатор ранее установленного соединения.


Во-вторых, соеденение с SQL-сервером не закроется по окончании выполнения скрипта. Вместо этого, ссылка останется открытой для дальнейшего использования (ifx_close() не закроет ссылку, установленную CLASS="FUNCTION">ifx_pconnect()).


Ссылка такого типа обычно называют устойчивыми (persistent).


Смотри также: ifx_connect().



ifx_close


ifx_close -- закрыть соединение с Informix


Описание int ifx_close(int [link_identifier]);


Всегда возвращает true


ifx_close() закрывает ссылку к базе данных Informix, которая ассоциируется со специальным идентификатором ссылки. Если идентификатор ссылки не указан, предполагается последнее установленное соединение.


Заметим, что данная функция не ринадлежит к разряду широко используемых, поскольку неустойчивые соединения автоматически закрываются после окончания выполнения скрипта.


ifx_close() не закрое устойчивое соединение, сгенерированное ifx_pconnect().


Смотри также: ifx_connect(), и ifx_pconnect().


Пример. закрытие соединения с Informix


$conn_id = ifx_connect (mydb@ol_srv, "itsme", "mypassword");
... несколько запросов и др. ...
ifx_close($conn_id);



ifx_query


ifx_query -- послать запрос Informix


Описание int ifx_query(string query, int [link_identifier], int [cursor_type], mixed [blobidarray]);


Возвращает определенный идентификатор результата Informix при успешном выполнении и false при ошибке.


Целочисленный "result_id" используется другими функциями для выборки результата запроса. Устанавливайте "affected_rows" для выборки, используя функцию ifx_affected_rows().


ifx_query() посылает запрос к текущей активной базе данных на сервере, который указан в link_identifier. Если идентификатор ссылки не специфицирован, подразумевается последнее открытое соединение. Если до этого не было установлено никакое соединение, функция пытается установить ссылку (как при вызове функции ifx_connect()), и использовать ее.


Выполняется query на соединении conn_id. Для запросов типа Select курсор объявлен и открыт. опциональный параметр cursor_type позволяет вам сделать курсор "scroll" и/или "hold". Это маска и может принимать одно из значаний IFX_SCROLL, IFX_HOLD, или обы вместе. Не-select запросы "выполняются немедленно".


Для любого типа запроса количество (предполагаемое или действительное) обрабатываемых рыдов сохраняется для выборки в ifx_affected_rows().


Если у вас есть колонки BLOB (BYTE или TEXT) в запросе update, вы может добавить параметрblobidarray, содержащий соответствующие идентификаторы BLOB; тогда следует заменить эти колонки на знак вопроса (?) в тексте запроса.


Если содержание колонки TEXT/BYTE позволяет, то вы можете также использовать "ifx_textasvarchar(1)" и "ifx_byteasvarchar(1)". Это позволит вам обращаться с колонками TEXT/BYTE так же, как с обычными (но довольно длинными) колонками VARCHAR в запросах select, и нет необходимости морочиться с идентификаторами BLOB.


С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситувация по умолчанию) запрос select возвратит колонки BLOB как идентификаторы BLOB (целые значения). Вы можете получитьзначения этих идентификаторов как стори или файлы путем использования специтальных функций для BLOB (см. ниже).


Смотри также: ifx_connect().


Пример. показ всех рядов таблицы "orders" как таблицы html




ifx_textasvarchar(1); // использовать режим "text mode" для BLOBов
$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);



Пример. Вставка нескольких значений в таблицу "catalog"


// создание идентификаторов BLOB для колонок byte и text
$textid = ifx_create_blob(0, 0, "Text column in memory");
$byteid = ifx_create_blob(1, 0, "Byte column in memory");
// сохранение идентификаторов BLOB в масиве
$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) {
... ошибка ...
}
// освобождение идентификатора результата
ifx_free_result($res_id);




ifx_prepare


ifx_prepare -- подготовка SQL-выражения к выполнению


Описание int ifx_prepare(string query, int conn_id, int [cursor_def], mixed blobidarray);


Возвращает целое result_id для использования в ifx_do(). Устанавливает affected_rows для извлечения данных функцией ifx_affected_rows().


Подготавливает query на соединении conn_id. Для запросов типа Select курсор объявлен и открыт. опциональный параметр cursor_type позволяет вам сделать курсор "scroll" и/или "hold". Это маска и может принимать одно из значаний IFX_SCROLL, IFX_HOLD, или обы вместе. Не-select запросы "выполняются немедленно".


Для любого типа запроса количество (предполагаемое или действительное) обрабатываемых рыдов сохраняется для выборки в ifx_affected_rows().


Если у вас есть колонки BLOB (BYTE или TEXT) в запросе update, вы может добавить параметрblobidarray, содержащий соответствующие идентификаторы BLOB; тогда следует заменить эти колонки на знак вопроса (?) в тексте запроса.


Если содержание колонки TEXT/BYTE позволяет, то вы можете также использовать "ifx_textasvarchar(1)" и "ifx_byteasvarchar(1)". Это позволит вам обращаться с колонками TEXT/BYTE так же, как с обычными (но довольно длинными) колонками VARCHAR в запросах select, и нет необходимости морочиться с идентификаторами BLOB.


С ifx_textasvarchar(0) или ifx_byteasvarchar(0) (ситувация по умолчанию) запрос select возвратит колонки BLOB как идентификаторы BLOB (целые значения). Вы можете получитьзначения этих идентификаторов как стори или файлы путем использования специтальных функций для BLOB (см. ниже).


Смотри также: ifx_do().



ifx_do


ifx_do -- выполняет предварительно подготовленное SQL-выражение


Описание int ifx_do(int result_id);


Возвращает true при успешном выполнении, false при ошибке.


Выполняет предварительно подготовленный запрос или открывает курсор для него.


Нe освобождает result_id при ошибке.


Тaкже устанавливает реальное значение ifx_affected_rows() для не-select выражений для выборки данных в ifx_affected_rows().


Смотри также: ifx_prepare().



ifx_error


ifx_error -- возвратить код ошибки последнего вызова Informix


Описание string ifx_error(void);


Коды оошибок The Informix (SQLSTATE & SQLCODE) имеют следующий фомат:


x [SQLSTATE = aa bbb SQLCODE=cccc]


где:


  • x = space : нет ошибок

  • E : ошибка

  • N : нет больше данных

  • W : предупреждене

  • ? : неопределенность


Первый символ возвращет общий результата, SQLSTATE и SQLCODE описывают ошибку более детально. Обрабатывается последняя ошибка.


Просмотрите Руководство к Informix для получения описания SQLSTATE и SQLCODE.


Смотри также: ifx_errormsg()



ifx_errormsg


ifx_errormsg -- возвратить сообщение об ошибке последнего вызова Informix


Описание string ifx_errormsg(int [errorcode]);


Возвращает сообщение об ошибке Informix, ассоциируещееся с последней ошибкой, или, если установлен опциональный параметр "errorcode", сообщение, соответствующее "errorcode".


Смотри также: ifx_error()


printf("%s\n<br>", ifx_errormsg(-201));




ifx_affected_rows


ifx_affected_rows -- получить число рядов, обработанных запросом


Описание int ifx_affected_rows(int result_id);


result_id is a valid result id returned by ifx_query() или ifx_prepare().


Возвращает число рядов, обработанных запросом, ассоциорванным с result_id.


Для вставок, обновлений и удалений - это реальное количество (sqlerrd[2]) обработанных рядов. Для выборок - ожидаемое количество (sqlerrd[0]). Не полагайтесь на него.


Часто используется после ifx_prepare() для ограничения запроса до приемлимого уровня.


Смотри также: ifx_num_rows()


Пример. Обрабатываемые ряды Informix




$rid = ifx_prepare ("select * from emp where name like " . $name, $connid);
if (! $rid) {
... ошбка ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
printf ("Too many rows in result set (%d)\n<br>", $rowcount);
die ("Please restrict your query<br>\n");
}





ifx_fetch_row


ifx_fetch_row -- получить ряд как перечислимый массив


Описание array ifx_fetch_row(int result_id, mixed [position]);


Возвращает ассоциативный массив, соответсвующий выбранному ряду, или false, если нет больше рядов.


Колонки BLOB возвращаются как целые идентификторы BLOB для использоваиня в ifx_get_blob(), если только вы не используете ifx_textasvarchar(1) или ifx_byteasvarchar(1), в этом случае BLOBы возвратятся как строкоыве значения. При ошибке возвращается false.


result_id - это действительный идентификатор результата, возвращенный ifx_query() или ifx_prepare() (только для запросов типа select).


[position] - опциональный параметр для операций выборки только при подвижном курсоре (scroll cursor): "NEXT", "PREVIOUS", "CURRENT", "FIRST", "LAST" или номер. Если указан номер, выполняется "абсолютная" выборка ряда.


ifx_fetch_row() выбирает один ряд данных из результата, ассоциирующегося с указанным идентификатором результата. Ряд возвращается как массив. Kаждая колонка результата сохраняется в смещении массива, начиная со смещения 0.


Последующий вызов ifx_fetch_row() возвртит следующий ряд результата, или false, если нет больше рядов.


Пример. Выборка рядов Informix




$rid = ifx_prepare ("select * from emp where name like " . $name,
$connid, IFX_SCROLL);
if (! $rid) {
... ошибка ...
}
$rowcount = ifx_affected_rows($rid);
if ($rowcount > 1000) {
printf ("Too many rows in result set (%d)\n<br>", $rowcount);
die ("Please restrict your query<br>\n");
}
if (! ifx_do ($rid)) {
... ошоибка ...
}
$row = ifx_fetch_row ($rid, "NEXT");
while (is_array($row)) {
for(reset($row); $fieldname=key($row); next($row)) {
$fieldvalue = $row[$fieldname];
printf ("%s = %s,", $fieldname, $fieldvalue);
}
printf("\n<br>");
$row = ifx_fetch_row ($rid, "NEXT");
}
ifx_free_result ($rid);





ifx_htmltbl_result


ifx_htmltbl_result -- форматировать все ряды запроса в таблицу HTML


Описание int ifx_htmltbl_result(int result_id, string [html_table_options]);


Возвращает количество выбранных рядов или false по ощибке.


Форматирует все ряды запроса с идентификатором result_id в html-таблицу. Второй опциональный параметр - строка с тегами установок <table>


Пример. Результат Informix как таблица HTML




$rid = ifx_prepare ("select * from emp where name like " . $name,
$connid, IFX_SCROLL);
if (! $rid) {
... ошибка ...
}
$rowcount = ifx_affected_rows ($rid);
if ($rowcount > 1000) {
printf ("Too many rows in result set (%d)\n<br>", $rowcount);
die ("Please restrict your query<br>\n");
}
if (! ifx_do($rid) {
... ошибка ...
}


ifx_htmltbl_result ($rid, "border=\"2\"");


ifx_free_result($rid);





ifx_fieldtypes


ifx_fieldtypes -- список полей Informix SQL


Описание array ifx_fieldtypes(int result_id);


Возвращает асоциативный масив с именами полей как ключами и типами данных SQL как данными для запроса с result_id. При ошибке FALSE.


Пример. Имена полей и типы данных SQL




$types = ifx_fieldtypes ($resultid);
if (! isset ($types)) {
... ошибка ...
}
for ($i = 0; $i < count($types); $i++) {
$fname = key($types);
printf("%s :\t type = %s\n", $fname, $types[$fname]);
next($types);
}





ifx_fieldproperties


ifx_fieldproperties -- список свойств полей SQL


Описание array ifx_fieldproperties(int result_id);


Возвращает ассоциативный массив с именами полей как ключами и SQL свойствами полей как данными для запроса с result_id. При ошибке - FALSE.


Возвращает свойства полей Informix SQL для каждого поля в запросе как ассоциативный массив. Свойства расшифровываются как: "SQLTYPE;длина;точность;размер;ISNULLABLE" где SQLTYPE = тип Informix типа "SQLVCHAR" и т.п. и ISNULLABLE = "Y" или "N".


Пример. Сойства полей Informix SQL




$properties = ifx_fieldtypes ($resultid);
if (! isset($properties)) {
... ошибка ...
}
for ($i = 0; $i < count($properties); $i++) {
$fname = key ($properties);
printf ("%s:\t type = %s\n", $fname, $properties[$fname]);
next ($properties);
}





ifx_num_fields


ifx_num_fields -- возвратить число полей в запросе


Описание int ifx_num_fields(int result_id);


Возвращает число колонок в запросе для result_id или FALSEпо ошибке.


После подготовки или выполнения запроса, этот вызов дает вам количество колонок в запросе.



ifx_num_rows


ifx_num_rows -- подсчет рядов, уже выбранных по запросу


Описание int ifx_num_rows(int result_id);


Дает количество строк, выбранных до сих пор для запроса с result_id после ifx_query() или ifx_do().



ifx_free_result


ifx_free_result -- освободить ресурсы запроса


Описание int ifx_free_result(int result_id);


Освобождает ресурсы, занятые запросом с идентификатором результата result_id. Возвращает FALSE при ошибке.



ifx_create_char


ifx_create_char -- создание симывольного объекта


Описание int ifx_create_char(string param);


Создает символьный объект. param должен иметь символьное содердимое.



ifx_free_char


ifx_free_char -- удалить символьный объект


Описание int ifx_free_char(int bid);


Удаляет символьны объеккт для аолученного идентификатора символьногго объекта bid. Возвращает FALSE при ошибке, в противном случае - TRUE.



ifx_update_char


ifx_update_char -- обновить содержимое символьного объекта


Описание int ifx_update_char(int bid, string content);


Обновляет содержимое символьного объекта с идентификатором bid. content - строка с новыми данными. Возвращает FALSE при ошибке, в противном случае - TRUE.



ifx_get_char


ifx_get_char -- прочесть содержимое символьного объекта


Описание int ifx_get_char(int bid);


Возвращает содержание символьного объекта с идентификатором bid.



ifx_create_blob


ifx_create_blob -- создать объект BLOB


Описание int ifx_create_blob(int type, int mode, string param);


Создает объект BLOB


  • type: 1 = TEXT, 0 = BYTE

  • mode: 0 = BLOB-объект хранится в памяти 1 = BLOB-объект хранит содержимое в файле

  • param: если режим = 0: указатель на содержимое если режим = 1: указатель на файл-строку


Возвращает FALSE при ошибке, в противном случае - новый идентификатор BLOB-объекта.




ifx_copy_blob


ifx_copy_blob -- дублирование полученного объекта BLOB


Описание int ifx_copy_blob(int bid);


Дублирует полученный BLOB-объект. bid - идентификатор дублируемого объекта


Возвращает FALSE при ошибке, в противном случае - новый идентификатор BLOB-объекта.



ifx_free_blob


ifx_free_blob -- удалить BLOB-объект


Описание int ifx_free_blob(int bid);


Удаляет объект BLOB сидентификатором bid. Возвращает FALSE при ошибек и TRUE в противном случае.



ifx_get_blob


ifx_get_blob -- прочитать содержимое BLOB


Описание int ifx_get_blob(int bid);


Возвращает содержимое объекта BLOB с идентификатором bid.



ifx_update_blob


ifx_update_blob -- обновить содержимое объекта BLOB


Описание ifx_update_blob(int bid, string content);


Обновляет содержимое объекта BLOB c идентификатором bid. content - строка с новыми данными. Возвращает FALSE при ошибке и TRUE в противном случае.



ifx_blobinfile_mode


ifx_blobinfile_mode -- установка умолчаний для BLOB для всех запросов select


Описание void ifx_blobinfile_mode(int mode);


Устанавливает для BLOB режимы по умолчанию для всех запросов select. Режим "0" означает сохранение Byte-BLOB в памяти, а режим "1" - сохранение в файл.



ifx_textasvarchar


ifx_textasvarchar -- установка умолчаний для текстового режима


Описание void ifx_textasvarchar(int mode);


Устанавливает умолчания для текстового режима для всех запрососв типа select. Режим "0" - возвращается идентификатор BLOB, а при режиме "1" - возвратится varchar с текстовым содержанием.



ifx_byteasvarchar


ifx_byteasvarchar -- установка умолчаний для байтового режима


Описание void ifx_byteasvarchar(int mode);


Устанавливает умолчани для байтового режима для всх запросов select. Режим "0" - возвращается идентификатор BLOB, а при режиме "1" - возвратится varchar с текстовым содержанием.



ifx_nullformat


ifx_nullformat -- установка возвращаеого по умолчанию значения при выборке ряда


Описание void ifx_nullformat(int mode);


Устанавливает возвращаемое по умолчанию значение при выборке ряда для полей созначением NULL. При mode=0 возвращается пустая строка, при mode=1 - NULL.



ifxus_create_slob


ifxus_create_slob -- создать объект slob и открыть его


Описание int ifxus_create_slob(int mode);


Создает slob-объект и открывает его. Режимы: Modes: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-маска. Вы также можете использовать константы, именованные IFX_LO_RDONLY, IFX_LO_WRONLY etc. Возвращает FALSE при ошибке и новый идентификатор объекта slob в противном случае.



ifx_free_slob


ifx_free_slob -- удалить объект slob


Описание int ifxus_free_slob(int bid);


Удаляет объект slob с идентификатором bid. Возвращает FALSE приошибке и TRUE в противном случае.



ifxus_close_slob


ifxus_close_slob -- удалить объект slob


Описание int ifxus_close_slob(int bid);


Удаляет объект slob с идентификатором bid. Возвращает FALSE приошибке и TRUE в противном случае.



ifxus_open_slob


ifxus_open_slob -- открыть объект slob


Описание int ifxus_open_slob(long bid, int mode);


Открывает объект slob. bid должен быть существующим идентификатором slob. Режимы: 1 = LO_RDONLY, 2 = LO_WRONLY, 4 = LO_APPEND, 8 = LO_RDWR, 16 = LO_BUFFER, 32 = LO_NOBUFFER -> or-маска. Возвращает FALSE при ошибке и новый идентификатор объекта slob в противном случае.



ifxus_tell_slob


ifxus_tell_slob -- возвратить текущий файл или позицию поиска


Описание int ifxus_tell_slob(long bid);


Возвращает текущий файл или позицию поиска для открытього объекта slob, bid должен быть действующим идентификатором slob. Возвращает FALSE при ошибке, в противном случае - позицию поиска.



ifxus_seek_slob


ifxus_seek_slob -- установить текущий файл или позицию поиска


Описание int ifxus_seek_blob(long bid, int mode, long offset);


Устанавливает текуцщий файл или позицию поиска для открытого объекта slob. bid должен быть существующим идентификатором slob. Режимы: 0 = LO_SEEK_SET, 1 = LO_SEEK_CUR, 2 = LO_SEEK_END и offset - байтовое смещение. Возвращает FALSE при ошибке, в противном случае - позицию поиска.



ifxus_read_slob


ifxus_read_slob -- читать байты в объект slob


Описание int ifxus_read_slob(long bid, long nbytes);


Читает байты в объект slob. bid - существующий идентификатор slob и nbytes - количество байт, которое надо прочесть. Возвращает FALSE при ошибке и строку в протвном случае.



ifxus_write_slob


ifxus_write_slob -- записать строку в объект slob


Описание int ifxus_write_slob(long bid, string content);


Записывает строку в объект slob. bid - существующий идентификатор slob и content - содержание записи. Возвращает FALSE при ошибке или число записанных байт в противном случае.

<<<  Назад
 1  2 


 8  Комментарии к статье  8 8  Обсудить в чате

8  В тему

Adabas D функции

Специфичные функции Apache

Функции обработки массивов

Математические BC (произвольной точности) функции

Календарные Функции

Функции Даты/Времени

dBase функции

Функции dbm

Функции для работы с каталогами

Функции запуска программ

Функции работы с filePro

Функции файловой системы

Функции, связанные с HTTP

Функции работы с Hyperwave

Функции работы с изображениями

Функции IMAP

PHP опции и информация

LDAP Функции

Почтовые функции

Математические функции

Дополнительные функции

Функции mSQL

Функции MySQL

Функции для работы с Sybase

Сетевые функции

Функции ODBC

Функции Oracle

Функции PDF

Функции PostgreSQL

Функции регулярных выражений

Функции семафоров и разделяемой памяти

Solid (надежные) функции

Функции SNMP

Строковые функции

Функции URL

Функции переменных

Функции Vmailmgr

Функции Gz-файлов

 
  
  
    Copyright ©  RIN 2003 - 2004      * Обратная связь