Руководство по РНР 3.0




Замечания по конфигурации


Содержание ifx_connect ifx_pconnect ifx_close ifx_query ifx_prepare ifx_do ifx_error ifx_errormsg ifx_affected_rows ifx_fetch_row ifx_htmltbl_result ifx_fieldtypes ifx_fieldproperties ifx_num_fields ifx_num_rows ifx_free_result ifx_create_char ifx_free_char ifx_update_char ifx_get_char ifx_create_blob ifx_copy_blob ifx_free_blob ifx_get_blob ifx_update_blob ifx_blobinfile_mode ifx_textasvarchar ifx_byteasvarchar ifx_nullformat ifxus_create_slob ifx_free_slob ifxus_close_slob ifxus_open_slob ifxus_tell_slob ifxus_seek_slob ifxus_read_slob ifxus_write_slob

Драйверы Informix для Online (ODS) 7.x, SE 7.x и Universal Server (IUS) 9.x выполнены в "functions/ifx.ec" и "functions/php3_ifx.h". В данный момент написание поддержки ODS 7.2 в известной степени завершено, с полной поддержкой BLOB. Поддержка IUS 9.1 завершена частично: новые типы данных уже есть, но поддержка SLOBS все еще в стадии разработки.

Замечания по конфигурации:

Перед тем, как вы запустите скрипт "configure", убедитесь, что переменная "INFORMIXDIR" установлена.

Конфигурационный скрипт автоопределяет библиотеки и включаемые (include) директории, если вы запустите "configure --with_informix=yes". Вы можете переопределить эти директории, специфицировав переменные окружения "IFX_LIBDIR", "IFX_LIBS" и "IFX_INCDIR". Скрипт также патается автоопределить версию сервера Informix. Он установит переменную условного завершения "HAVE_IFX_IUS", если у вас Informix версии >= 9.00.

Несколько замечаний по использованию BLOB:

Текущая версия (18 Сентября 1998) полностью поддерживает select/insert/update для BLOB.

BLOBы в общем случае адрексуются целочисленными идентификаторами BLOB. Запрос Select возвращает "blob id" для каждой колонки BYTE и TEXT. Вы можете получить содержание путем "string_var = ifx_get_blob($blob_id);" если была выбрана передача BLOBов в память ("ifx_blobinfile(0);"). Если вы предпочитаете получать содержимое колонки BLOB в файл, используйте "ifx_blobinfile(1);", и "ifx_get_blob($blob_id);" возвратит вам имя файла. Для получения содержания используйте стандартные операции файлового ввода/вывода

Для запросов insert/update вам неоходимо создать "blob id's" своими силами, используя "ifx_create_blob(..);". Затем включите идентификатор BLOB в массив и замените колонку BLOB знаком вопроса (?) в строке запроса. Для updates/inserts вы определяете содержание BLOB, используя ifx_update_blob(...).

Поведение колонок BLOB может быт изменено конфигурационными переменными, которые можно устанавлиавать и во время выполнения:

конфигурационная переменная : ifx.textasvarchar

конфигурационная переменная : ifx.byteasvarchar

функция времени выполнения :

ifx_textasvarchar(0) : использовать идентификатор BLOB для запросов select для колонок TEXT.

ifx_byteasvarchar(0) : использовать идентификатор BLOB для запросов select для колонок BYTE.

ifx_textasvarchar(1) : возвращать колонку TEXT так, как будто это VARCHAR, без использования идентификатора BLOB для запросов select.

ifx_byteasvarchar(1) : возвращать колонку BYTE так, как будто это VARCHAR, без использования идентификатора BLOB для запросов select.

Конфигурационная переменная : ifx.blobinfile

функция времени выполнения :

ifx_blobinfile_mode(0) : возвращать колонку BYTE в память, идентификатор BLOB позволяет получить содержание.

ifx_blobinfile_mode(1) : возвращать колонку BBYTE в файл, по идентификатору BLOB - имя файла

Если вы устанавливаете ifx_text/byteasvarchar в 1, то можете использовать колонки TEXT и BYTE в запросах select как обычные (но довольно длинные) поля VARCHAR. С тех пор, как все строки в PHP3 "счетные", это напоминает "бинарную безопасность". Возвращаемые данные могут содержать все, что угодно, вы отвечаете за содержимое.

Если вы устанавливаете ifx_blobinfile в 1, используйте имя файла, возвращаемое ifx_get_blob(..) для получения бинарного содержания. Заметим, что в этом случае ВЫ ОТВЕТСТВЕННЫ ЗА УДАЛЕНИЕ ВРЕМЕННЫХ ФАЙЛОВ, СОЗДАННЫХ INFORMIX при выборке ряда. Каждый новый выбранный ряд создает новые временные файлы для каждой колонки типа BYTE.

Местоположение временных файлов указывается в переменной окружения "blobdir", по умолчанию - "." (текущая директория). Что-то вроде putenv(blobdir="tmpblob"); облегчит удаление случайно оставленных временных файлов (имена всех таких файлов начинаются с "blb").

Автоудаление пробелов для данных "char" (SQLCHAR и SQLNCHAR):

Может быть устанвлено в конфигурационной переменной :

ifx.charasvarchar : если установлена в 1 , то концевые пробелы будут удаляться автоматически.







Начало  Назад  Вперед


Книжный магазин