oci_connect
(PHP 5, PHP 7, PHP 8, PECL OCI8 >= 1.1.0)
oci_connect — Встановлює з'єднання з базою даних Oracle
Опис
oci_connect( string $username, string $password, ?string $connection_string = null, string $encoding = "", int $session_mode = OCI_DEFAULT): resource|false
Повертає ідентифікатор з'єднання, який використовується більшістю функцій модуля.
Для підвищення продуктивності більшість програм повинні використовувати постійні з'єднання за допомогою oci_pconnect() замість **oci_connect()**СмотритеУправління з'єднанням для більш детальної інформації з управління з'єднаннями та створення пулів підключень.
Другий та наступні виклики функції oci_connect() з тими ж параметрами повернуть ідентифікатор відкритого з'єднання. Це означає, що транзакції використовують одне і теж базове з'єднання із базою даних. При необхідності поділу транзакцій рекомендується використовувати функцію oci_new_connect()
Список параметрів
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
**в случае возникновения ошибки.
список змін
Версия | Опис |
---|---|
8.0.0, PECL OCI8 3.0.0 | connection_string тепер допускає значення null. |
Приклади
Приклад #1 Приклад використання oci_connect()с синтаксисом Easy Connect
Loading...
Приклад #2 Приклад використання oci_connect()используя имя Network Connect
Loading...
Приклад #3 Приклад використання oci_connect()** з використанням певного набору символів**
Loading...
Приклад #4 Приклад використання багаторазових дзвінків oci_connect()
Loading...
Примітки
Зауваження :
Некоректно встановлений або налаштований модуль OCI8 часто повідомлятиме про проблеми з'єднання або помилки. Дивіться Встановлення/Налаштуваннядля решения проблем.
Дивіться також
- oci_pconnect() - Встановлює постійне з'єднання із сервером Oracle
- oci_new_connect() - Встановлює нове з'єднання із сервером Oracle
- oci_close() - Закриває з'єднання із сервером Oracle