oci_pconnect
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_pconnect — Встановлює постійне з'єднання із сервером Oracle
Опис
oci_pconnect( string $username, string $password, ?string $connection_string = null, string $encoding = "", int $session_mode = OCI_DEFAULT): resource|false
Створює постійне з'єднання з сервером Oracle та виконує аутентифікацію.
Постійні з'єднання кешуються та повторно використовуються при наступних запитах, в результаті знижуються накладні витрати при кожному завантаженні сторінки; Типова програма PHP має одне постійне підключення до сервера PHP, реалізоване дочірнім процесом Apache (або процесом PHP FPM). Додаткову інформацію дивіться у розділі Робота зі з'єднаннями OCI8 та Connection Pooling
Список параметрів
username
Ім'я користувача Oracle.
password
Пароль користувача username
connection_string
Містить екземпляр Oracle
для підключення. Це може бути » Easy Connect string, або Connect Name з файлу tnsnames.ora, або ім'я локального екземпляра Oracle.
Якщо не вказано окремо або null
, PHP використовує змінні оточення, такі як TWO_TASK
(на Linux) или**LOCAL
(на Windows) иORACLE_SID
**для определенияекземпляра Oracle
для соединения.
Для використання методу Easy Connect, PHP має бути з'єднаний з клієнтськими бібліотеками версії Oracle 10gили старше. Easy Connect string для Oracle 10gпринимает следующую форму:[//]host_name[:port][/service_name]. Починаючи з Oracle 11g синтаксис такий: [//]host_name[:port][/service_name][:server_type][/instance_name]. У Oracle 19c було введено додаткові параметри, включаючи налаштування часу очікування та перевірки активності. Зверніться до документації Oracle. Назви служб можуть бути визначені за допомогою запуску Oracle утиліти lsnrctl status
на сервері бази даних.
Файл tnsnames.ora може знаходитись у пошуковому шляху Oracle Net, який включає /your/path/to/instantclient/network/admin, $ORACLE_HOME/network/admin та /etc. Як альтернативний варіант можна встановити TNS_ADMIN
таким чином, щоб шлях $TNS_ADMIN/tnsnames.ora читав. Переконайтеся, що веб-сервер має доступ до файлу.
encoding
Визначає кодування, яке використовуватимуть клієнтські бібліотеки Oracle. Це кодування не обов'язково має збігатися з кодуванням, яке використовується в самій базі даних. Якщо вона не збігається, Oracle зробить все можливе для конвертування даних з-і в це кодування. Залежно від використовуваних кодувань, це може не завжди давати прийнятні результати. Перетворення також створює деякі додаткові витрати часу.
Якщо кодування не вказано, клієнтські бібліотеки Oracle будуть визначати його зі змінного оточення. NLS_LANG
Передача цього параметра може зменшити час, що витрачається на з'єднання.
session_mode
Цей параметр доступний починаючи з версії PHP 5 (PECL OCI8 1.1) і набуває наступних значень: OCI_DEFAULT
OCI_SYSOPER
і OCI_SYSDBA
. Якщо були вказані **OCI_SYSOPER
** або **OCI_SYSDBA
**ця функція спробує встановити привілейоване з'єднання, використовуючи зовнішні дані авторизації. За замовчуванням привілейовані з'єднання вимкнено. Щоб їх увімкнути, необхідно встановити oci8.privileged_connectвOn
У версії PHP 5.3 (PECL OCI8 1.3.4) з'явилося значення OCI_CRED_EXT
. Воно вказує Oracle використовувати зовнішню автентифікацію або автентифікацію за допомогою операційної системи, що має бути налаштовано у базі даних. Прапор OCI_CRED_EXT
може бути використаний лише з ім'ям користувача "/" та порожнім паролем. . oci8.privileged_connect може набувати значення On
илиOff
OCI_CRED_EXT
може використовуватися спільно з режимами OCI_SYSOPER
і OCI_SYSDBA
OCI_CRED_EXT
не підтримується у Windows через безпеку.
Значення, що повертаються
Повертає ідентифікатор підключення або **false
**в случае возникновения ошибки.
Приклади
Приклад #1 Простий приклад для oci_pconnect() з використанням спрощеного синтаксису підключення
Loading...
Додаткові приклади можна знайти в описі функції oci_connect()
Примітки
Зауваження: Тривалість та максимальна кількість постійних з'єднань до сервера Oracle на кожен процес PHP може бути змінена в наступних директивах: oci8.persistent_timeout oci8.ping_interval і oci8.max_persistent
Дивіться також
- oci_connect() - Встановлює з'єднання з базою даних Oracle
- oci_new_connect() - Встановлює нове з'єднання із сервером Oracle