П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
Поиск по сайту:
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое








Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 3439 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 5995 раз(а).

Учебник HTML.
Просмотров 3220 раз(а).

Руководство по PHP5.
Просмотров 5442 раз(а).

Хостинг через призму DNS.
Просмотров 4050 раз(а).

Подборка текстов стандартных документов.
Просмотров 55723 раз(а).

Учебник PHP - Самоучитель
Просмотров 3020 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 4810 раз(а).

Внешние атаки...
Просмотров 3759 раз(а).

Учебник PHP.
Просмотров 2782 раз(а).

SSI в примерах.
Просмотров 37396 раз(а).



 
 
| Добавить в избранное | Сделать стартовой | Помощь





Учебник РНР
Назад Вперёд

XLIV. Функции Informix

Введение

Драйвер Informix для Informix (IDS) 7.x, SE 7.x, Universal Server (IUS) 9.x и IDS 2000 реализован в "ifx.ec" и "php3_ifx.h" в директории расширения informix. Поддержка IDS 7.x весьма основательна, с полной поддержкой столбцов BYTE и TEXT. Поддержка IUS 9.x частично завершена: введены новые типы данных, но поддержка SLOB и CLOB всё ещё в стадии разработки.

Требования

Замечания по конфигурации: вам необходима версия ESQL/C для компиляции драйвера Informix для РНР. ESQL/C версии с 7.2x должны работать нормально. ESQL/C является теперь частью Informix Client SDK.

Убедитесь, что переменная "INFORMIXDIR" установлена и что $INFORMIXDIR/bin имеется в вашей переменной окружения PATH, прежде чем запускать скрипт "configure".

Установка

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

Конфигурация

Примечание: убедитесь, что переменные окружения Informix INFORMIXDIR и INFORMIXSERVER доступны для PHP ifx-драйвера и что директория INFORMIX bin находится в PATH. Проверьте это, запустив скрипт, содержащий вызов phpinfo(), прежде чем начать тестирование. На выводе phpinfo() эти переменные должны быть перечислены. Это TRUE как для CGI php, так и для Apache mod_php. Вам может понадобиться установить эти переменные окружения в стартовом скрипте вашего Apache.

Совместно используемые библиотеки Informix также должны быть доступны загрузчику (проверьте LD_LINBRARY_PATH или ld.so.conf/ldconfig).

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

Для запросов insert/update вы обязаны создать эти "blob id'ы" самостоятельно с помощью " ifx_create_blob();". Затем подключите blob id'ы в массив и заместите blob-столбцы знаком вопроса (?) в строке запроса. Для update/insert вы ответственны за установку blob-содержимого с помощью ifx_update_blob().

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

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

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

runtime-функции :

ifx_textasvarchar(0) : использовать blob id'ы для select-запросов со столбцами TEXT

ifx_byteasvarchar(0) : использовать blob id'ы для select-запросов со столбцами BYTE

ifx_textasvarchar(1) : возвращать столбцы TEXT, как если бы они были столбцами VARCHAR, чтобы вам не нужно было использовать blob id'ы дляselect-запросов

ifx_byteasvarchar(1) : возвращать столбцы BYTE, как если бы они были столбцами VARCHAR, чтобы вам не нужно было использовать blob id'ы для select-запросов

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

runtime-функция :

ifx_blobinfile_mode(0) : возвращать столбцы BYTE в памяти, blob id позволяет получать содержимое

ifx_blobinfile_mode(1) : возвращать столбцы BYTE в файле, blob id позволяет получать имя файла

Если вы устанавливаете для ifx_text/byteasvarchar значение 1, вы можете использовать столбцы TEXT и BYTE в select-запросах, как нормальные (но всё же long) поля VARCHAR. Поскольку все строки "подсчитаны" в PHP, он остаётся "binary safe". Вы обязаны обработать это корректно. Возвращаемые данные могут содержать всё что угодно, вы отвечаете за содержимое.

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

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

Автоматическая доводка "char"-данных (SQLCHAR и SQLNCHAR): это можно установить переменной окружения

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

NULL-значения: переменная конфигурации ifx.nullformat (и функция времени выполнения ifx_nullformat()), если установлена в TRUE, возвратит NULL -столбцы как строку "NULL", если установлена FALSE, они возвратят пустую строку. Это позволяет вам выбирать между NULL -столбцами и пустыми столбцами.

Типы ресурсов

Предопределённые константы

Это расширение не определяет никаких констант.

Содержание
ifx_affected_rows - получает количество рядов, задействованных в запросе
ifx_blobinfile_mode - устанавливает blob-режим по умолчанию для всех select-запросов
ifx_byteasvarchar - устанавливает byte-режим по умолчанию
ifx_close - закрывает соединение Informix
ifx_connect - открывает серверное соединение Informix
ifx_copy_blob - дублирует данный blob-объект
ifx_create_blob - создаёт blob-объект
ifx_create_char - создаёт char-объект
ifx_do - выполняет ранее подготовленный SQL-оператор
ifx_error - возвращает код ошибки последнего вызова Informix
ifx_errormsg - возвращает сообщение об ошибке последнего вызова Informix
ifx_fetch_row - получает ряд как перечислимый массив
ifx_fieldproperties - выдаёт список свойств SQL-полей
ifx_fieldtypes - выдаёт список Informix SQL-полей
ifx_free_blob - удаляет blob-объект
ifx_free_char - удаляет char-объект
ifx_free_result - освобождает ресурсы для запроса
ifx_get_blob - возвращает содержимое blob-объекта
ifx_get_char - возвращает содержимое char-объекта
ifx_getsqlca - получает содержимое sqlca.sqlerrd[0..5] после запроса
ifx_htmltbl_result - форматирует все ряды запроса в виде HTML-таблицы
ifx_nullformat - устанавливает return-значение по умолчанию при извлечении ряда
ifx_num_fields - возвращает количество столбцов в запросе
ifx_num_rows - подсчитывает ряды, уже извлечённые из запроса
ifx_pconnect - открывает постоянное соединение Informix
ifx_prepare - готовит SQL-оператор для выполнения
ifx_query - отправляет Informix query
ifx_textasvarchar - устанавливает текстовый режим по умолчанию
ifx_update_blob - обновляет содержимое blob-объекта
ifx_update_char - обновляет содержимое char-объекта
ifxus_close_slob - удаляет slob-объект
ifxus_create_slob - создаёт slob-объект и открывает его
ifxus_free_slob - удаляет slob-объект
ifxus_open_slob - открывает slob-объект
ifxus_read_slob - читает n байт slob-объекта
ifxus_seek_slob - устанавливает текущую позицию файла или поиска
ifxus_tell_slob - возвращает текущую позицию файла или поиска
ifxus_write_slob - записывает строку в slob-объект

НазадОглавление Вперёд
imap_utf8Вверх ifx_affected_rows


Если Вы не нашли что искали, то рекомендую воспользоваться поиском по сайту:
 





Copyright © 2005-2016 Project.Net.Ru