Эти функции позволяют вам работать с 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:
# ldd /www/apache/bin/httpd libpthread.so.0 => /lib/libpthread.so.0 (0x4001c000) libm.so.6 => /lib/libm.so.6 (0x4002f000) libcrypt.so.1 => /lib/libcrypt.so.1 (0x4004c000) libdl.so.2 => /lib/libdl.so.2 (0x4007a000) libc.so.6 => /lib/libc.so.6 (0x4007e000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)Если libpthread не присутствует в списке, то вам придется переустановить Apache:
Обратите внимание на то, что на некоторых системах, например, 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.ini.
Перечисленные ниже константы определены данным расширением и могут быть доступны только в том случае, если PHP был собран с поддержкой этого расширения или же в том случае, если данное расширение подгружается во время выполнения.
Режим выполнения выражения SQL. В этом режиме транзакция не завершается автоматически оператором COMMIT.
Режим выполнения выражения SQL. Используйте этот режим, если вы хотите получить данные о выполнении запроса, а не выполнить сам запрос.
Режим выполнения выражения SQL. Транзакция автоматически завершается вызовом оператора COMMIT после выполнения oci_execute().
Режим получения результатов запроса. Используется в том случае, если приложению известно заранее сколько строк будет получено в результате. Oracle 8 и более поздние версии не используют выборку результатов с упреждением в этом режиме, а курсоры уничтожаются автоматически после выборки ожидаемого количества строк, что может уменьшить требования сервера к ресурсам.
Используется функцией oci_bind_by_name() для привязки переменных типа BFILE.
Используется функцией oci_bind_by_name() для привязки переменных типа CFILE.
Используется функцией oci_bind_by_name() для привязки переменных типа CLOB.
Используется функцией oci_bind_by_name() для привязки переменных типа BLOB.
Используется функцией oci_bind_by_name() для привязки переменных типа ROWID.
Используется функцией oci_bind_by_name() для привязки курсоров, созданных ранее с помощью oci_new_cursor().
Используется функцией oci_bind_by_name() для привязки именованных типов данных. В PHP < 5.0 эта константа называлась OCI_B_SQLT_NTY.
То же, что и OCI_B_BFILE.
То же, что и OCI_B_CFILEE.
То же, что и OCI_B_CLOB.
То же, что и OCI_B_BLOB.
То же, что и OCI_B_ROWID.
То же, что и OCI_B_NTY.
Режим oci_fetch_all() по умолчанию.
Альтернативный режим oci_fetch_all().
Используется с oci_fetch_all() и oci_fetch_array() для получения ассоциативного массива.
Используется с oci_fetch_all() и oci_fetch_array() для получения массива с числовыми индексами.
Используется с oci_fetch_all() и oci_fetch_array() для получения массива с ассоциативными и числовыми индексами.
Используется с oci_fetch_array() для получения пустых элементов массива, если соответствующее поле в результате равно NULL.
Используется oci_fetch_array() для получения содержания объекта LOB вместо дескриптора.
Флаг используется oci_new_descriptor() для инициализации дескриптора типа FILE.
Флаг используется oci_new_descriptor() для инициализации дескриптора типа LOB.
Флаг используется oci_new_descriptor() для инициализации дескриптора типа ROWID.
То же, что и OCI_DTYPE_FILE.
То же, что и OCI_DTYPE_LOB.
То же, что и OCI_DTYPE_ROWID.
Вы можете использовать хранимые процедуры так же, как это делается из командной строки.
Пример 2. Использование хранимых процедур
|
Пред. | Начало | След. |
overload | Уровень выше | OCI-Collection->append |