Эти функции позволяют вам работать с Oracle версий 9/8/7.
Для этого используется библиотека Oracle Call Interface (OCI).
Данный модуль много гибче прежнего.
Он содержит функции привязки переменных PHP к соответствующим
меткам Oracle, расширенную поддержка LOB, FILE и ROWID.
Использование этого модуля рекомендуется вместо
старого модуля.
Вам понадобятся клиентские библиотеки Oracle для того, чтобы использовать
этот модуль. Пользователям Windows будет необходим Oracle версии минимум
8.1 для того, чтобы использовать php_oci8.dll.
Перед использованием этого модуля, проверьте, что вы установили все
необходимые переменные окружения. Эти переменные, перечисленные ниже,
должны быть доступны пользователю Oracle и пользователю, с правами
которого работает веб-сервер. Переменные окружения, необходимые для
корректной работы с Oracle:
ORACLE_HOME
ORACLE_SID
LD_PRELOAD
LD_LIBRARY_PATH
NLS_LANG
ORA_NLS33
После установки среды окружения для веб-сервера, добавьте
пользователя, с правами которого работает веб-сервер, в группу oracle.
Если ваш веб-сервер не стартует или возвращает ошибку при старте:
Проверьте, что Apache был слинкован с библиотекой
pthread:
Если libpthread не присутствует в списке, то вам придется переустановить Apache:
# cd /usr/src/apache_1.3.xx
# make clean
# LIBS=-lpthread ./config.status
# make
# make install
Обратите внимание на то, что на некоторых системах, например, UnixWare,
вместо libthread присутствует
libpthread. PHP и Apache также должны быть собраны с
EXTRA_LIBS=-lthread.
PHP должен быть сконфигурирован с опцией
--with-oci8[=DIR], где
DIR соответствует директории, в которой
находится установленный ранее сервер и/или клиент Oracle. По
умолчанию значение DIR соответствует
переменной окружения ORACLE_HOME.
Если вы используете Oracle Instant Client, то для поддержки модуля OCI8
нужно, чтобы PHP был сконфигурирован с опцией
--with-oci8-instant-client[=DIR]. Обратите
внимание: поддержка Oracle Instant Client появилась только начиная с
версий 4.3.11 и 5.0.4.
Перечисленные ниже константы определены данным расширением и могут быть
доступны только в том случае, если PHP был собран с
поддержкой этого расширения или же в том случае, если
данное расширение подгружается во время выполнения.
Режим получения результатов запроса. Используется в том случае,
если приложению известно заранее сколько строк будет получено
в результате. Oracle 8 и более поздние версии не используют выборку
результатов с упреждением в этом режиме, а курсоры уничтожаются
автоматически после выборки ожидаемого количества строк, что
может уменьшить требования сервера к ресурсам.
Вы можете использовать хранимые процедуры так же, как это делается из
командной строки.
Пример 2. Использование хранимых процедур
<?php // by webmaster at remoterealty dot com $sth = OCIParse($dbh, "begin sp_newaddress( :address_id, '$firstname', '$lastname', '$company', '$address1', '$address2', '$city', '$state', '$postalcode', '$country', :error_code );end;");
// This calls stored procedure sp_newaddress, with :address_id being an // in/out variable and :error_code being an out variable. // Then you do the binding: