Функції ODBC та DB2 (PDO_ODBC)
Вступ
PDO_ODBC - драйвер, реализующийінтерфейс PHP Data Objects (PDO) для доступу до баз даних через драйвер ODBC або бібліотеку IBM DB2 Call Level Interface (DB2 CLI). На даний момент PDO_ODBC підтримує різні "відтінки" драйверів баз даних:
ibm-db2
Підтримка доступу до серверів IBM DB2 Universal Database, Cloudscape та Apache Derby через вільний клієнт DB2 express-C.
unixODBC
Підтримує доступ до баз даних через менеджер драйверів unixODBC та власні ODBC драйвери баз даних.
generic
Надає опцію компіляції менеджерів драйверів ODBC, які не підтримуються PDO_ODBC безпосередньо.
У Windows php_pdo_odbc.dll має бути включений як модуль у php.ini. Він збирається за участю Windows ODBC Driver Manager, тому PHP може підключатися до будь-якої бази даних, визначеної як System DSN.
Установка
PDO_ODBC на UNIX системах
-
Модуль PDO_ODBC включено у вихідний код PHP. Ви можете скомпілювати модуль як статичний або розділяється, використовуючи наступний синтаксисconfigure
ibm_db2
./configure --with-pdo-odbc=ibm-db2,/opt/IBM/db2/V8.1/
Для збирання PDO_ODBC для ibm-db2 потрібно попередньо встановити файли заголовків пакета розробника програм DB2. Заголовкові файли пакета розробника додатків DB2 можна встановити як за допомогою інсталяційного пакета сервера DB2, так і у складі окремого клієнта "DB2 Application Development Client", доступного для завантаження з » сайту підтримкиIBM developerWorks.
Якщо ви не вкажете директорію установки бібліотек та заголовних файлів DB2,configureбуде шукати їх у /home/db2inst1/sqllib.
unixODBC
./configure --with-pdo-odbc=unixODBC,/usr/local
Якщо ви не вкажете директорію установки бібліотек і файлів заголовків unixODBC,configureбуде шукати їх у /usr/local.
generic
./configure --with-pdo-odbc=generic,/usr/local,libname,ldflags,cflags
Обумовлені константи
Наведені нижче константи визначені цим драйвером і будуть доступні лише у випадку, якщо PHP був зібраний за допомогою цього модуля, або модуль був динамічно завантажений під час виконання. Крім того, ці залежні від драйвера константи повинні бути використані лише разом із цим драйвером. Використання атрибутів, специфічних для деякого драйвера з іншим драйвером, може викликати несподівану поведінку. Якщо ваш код виконується з кількома драйверами, можна використовувати функцію PDO::getAttribute()для получения атрибута**PDO::ATTR_DRIVER_NAME
**для проверки драйвера.
PDO::ODBC_ATTR_USE_CURSOR_LIBRARY
(int)
Цей параметр визначає, чи використовується бібліотека курсорів ODBC. Бібліотека курсорів ODBC підтримує деякі додаткові особливості ODBC (наприклад, блокові курсори, що прокручуються), які можуть не реалізовуватися драйвером. Підтримуються такі значення:
-
PDO::ODBC_SQL_USE_IF_NEEDED
(за замовчуванням): використовувати бібліотеку курсорів ODBC, якщо необхідно. -
PDO::ODBC_SQL_USE_DRIVER
: ніколи не використовувати бібліотеку курсорів ODBC -
PDO::ODBC_SQL_USE_ODBC
: використовувати бібліотеку курсорів ODBC.
PDO::ODBC_ATTR_ASSUME_UTF8
(bool)
Лише для Windows. Якщо true
, то дані в кодуванні UTF-16 (CHAR
VARCHAR
иLONGVARCHAR
) будуть конвертовані в UTF-8 під час читання або запису. Якщо false
(за умовчанням), перетворення кодування символів може бути виконане драйвером.
Налаштування під час виконання
Поведінка цих функцій залежить від установок у php.ini.
Конфігураційні опції PDO_ODBC
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
pdo_odbc.connection_pooling | "strict" | INI_ALL | |
pdo_odbc.db2_instance_name | NULL | INI_SYSTEM | Ця можливість застаріла та будевидаленов будущем. |
Додаткова інформація та опис режимів INI_* дано у розділі «Місця встановлення параметрів конфігурації».
Коротке пояснення конфігураційних директив.
pdo_odbc.connection_pooling
string
Чи потрібно поєднувати з'єднання ODBC. Може бути "strict"
"relaxed"
или"off"
(аналогічно ""
). Параметр визначає, як менеджер з'єднань повинен порівнювати параметри з'єднань для вибору, створювати нове з'єднання або повертати вже існуюче. За промовчанням рекомендується використовувати strict
, що означає, що збережене з'єднання повертатиметься лише, якщо всі параметри точно збігаються . relaxed
призведе до того, що закешоване з'єднання буде повернуто, якщо параметри схожі. Це спричинить більш активне використання кеша, але може призвести до витоку інформації про з'єднання (наприклад) між віртуальними хостами.
Це налаштування можна змінити тільки в php.ini та впливає на всі процеси; всі модулі, завантажені в процес і які використовують ті ж бібліотеки ODBC, залежатимуть від цієї настройки, включаючи Уніфікований модуль ODBC
Увага
Значение**relaxed
** не повинно використовуватися на загальному хостингу з метою безпеки.
Підказка
Якщо у вас немає дуже серйозного приводу використовувати значення, відмінне від strict
- Не змінюйте його.
pdo_odbc.db2_instance_name
string
Якщо ви скомпілювали PDO_ODBC с использованиемdb2
, ця опція встановить значення змінної оточення DB2INSTANCE у системах Linux і UNIX, що дорівнює обраному імені екземпляра DB2. Це дозволяє PDO_ODBC визначити розташування бібліотек DB2 і з'єднатися з каталогом бази даних DB2.
Це налаштування можна змінити тільки в php.ini, і воно впливає на всі процеси; всі модулі, завантажені в процес і які використовують ті ж бібліотеки ODBC, залежатимуть від цієї настройки, включаючи уніфікований модуль ODBC
Ця опція не працює у Windows.
Зміст
- PDO_ODBC DSN— З'єднання з базами даних ODBC або DB2