PDO_CUBRID - драйвер, реализующий интерфейс PHP Data Objects (PDO) для доступа к базам данных CUBRID.
Замечание:
Текущая версия PDO_CUBRID не поддерживает постоянные соединения.
Для сборки модуля PDO_CUBRID, на том же хосте должен быть установлен СУБД CUBRID. PDO_CUBRID является модулем » PECL, так что для его установки следуйте инструкциям Установка модулей PECL. Для указания команде configure директории с установленной базой CUBRID, используйте следующий синтаксис:
$ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
DLL для этого модуля PECL пока недоступна. Смотрите также раздел сборка на Windows. Для более подробной информации о ручной установке модуля под Linux и Windows, читайте build-guide.html, содержащийся в пакете PECL.
Особенности | Описание |
---|---|
Перематываемые курсоры | PDO_CUBRID поддерживает перематываемые курсоры. Типом курсора по умолчанию является "forward only" (только вперёд), для его изменения можно использовать параметр driver_options в PDO::prepare(). |
Время ожидания | PDO_CUBRID поддерживает настройку времени ожидания выполнения SQL-запроса.; Для его настройки используйте метод PDO::setAttribute(). |
Режим автоподтверждения и транзакции |
PDO_CUBRID поддерживает как режим автоподтверждения, так и работу с транзакциями.
По умолчанию используется режим автоподтверждения. Для изменения режима
используйте метод PDO::setAttribute().
Если вы используете PDO::beginTransaction() для старта транзакции, то автоподтверждение будет автоматически запрещено и снова разрешено после PDO::commit() или PDO::rollBack(). Обратите внимание, что перед отключением автоподтверждения, все ожидающие запросы будут автоматически подтверждены. |
Множественные SQL-запросы | PDO_CUBRID поддерживает множественные SQL-запросы. Множественные SQL-запросы разделяются точкой с запятой (;) |
Информация о схеме | PDO_CUBRID реализует функцию PDO::cubrid_schema() для получения информации о схеме. |
LOBs | PDO_CUBRID поддерживает типы данных BLOB/CLOB. LOB в PDO
представляется как поток, следовательно вы можете вставлять LOB путём
связывания с потоком и получать LOB путём чтения из потока, возвращённого
CUBRID PDO. К примеру:
Пример #1 Вставка LOB в CUBRID PDO <?php
Пример #2 Получение LOB в CUBRID PDO <?php |
Метаинформация о столбцах |
Метод PDOStatement::getColumnMeta() в CUBRID PDO
вернёт ассоциативный массив, содержащий следующие значения:
|
Тип данных Коллекция | PDO_CUBRID поддерживает типы данных SET/MULTISET/SEQUENCE.
Если вы явно не указываете тип данных, то по умолчанию будет использоваться
char. К примеру:
Пример #3 Вставка коллекции в CUBRID PDO с типом данных по умолчанию. <?php
Пример #4 Указание типа данных при вставке коллекции в CUBRID PDO <?php
|
Драйвер
определяет перечисленные ниже константы, которые доступны только тогда, когда PHP собрали
с поддержкой этого модуля, или модуль динамически загрузили во время исполнения кода.
Зависимые от драйвера константы разрешно использовать только совместно с этим драйвером.
Атрибуты одного драйвера с другим драйвером ведут себя неожиданно. Для проверки названия
драйвера, которое содержит атрибут PDO::ATTR_DRIVER_NAME
, вызывают
метод PDO::getAttribute(), если код запускается с несколькими драйверами.
Следующими константами устанавливают атрибуты базы данных. Эти константы передают в методы PDO::getAttribute() и PDO::setAttribute().
Константы | Описание |
---|---|
PDO::CUBRID_ATTR_ISOLATION_LEVEL |
Уровень изоляции для соединения. |
PDO::CUBRID_ATTR_LOCK_TIMEOUT |
Время ожидания транзакции в секундах. |
PDO::CUBRID_ATTR_MAX_STRING_LENGTH |
Только для чтения. Максимальная длина строки для типов данных bit, varbit, char, varchar, nchar, nchar при работе с API драйвера CUBRID модуля PDO. |
Следующие константы устанавливают уровень изоляции транзакции. Эти константы передают в методы PDO::getAttribute() и PDO::setAttribute().
Константы | Описание |
---|---|
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE |
Самый низкий уровень изоляции (1). Для кортежа может произойти грязное, неповторяемое или фантомное считывание, а также для таблицы может произойти неповторяемое считывание. |
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE |
Относительно низкий уровень изоляции (2). Грязного чтения не будет, но неповторяющееся или фантомное возможно. |
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE |
Уровень изоляции драйвера CUBRID по умолчанию (3). Для кортежа может произойти «грязное», неповторяемое или фантомное чтение, но для таблицы гарантировано повторяющееся чтение. |
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE |
Относительно низкий уровень изоляции (4). Грязного чтения не будет, но неповторяющееся или фантомное возможно. |
PDO::TRAN_REP_CLASS_REP_INSTANCE |
Относительно высокий уровень изоляции (5). Грязного и неповторяющегося чтения не будет, но фантомное может возникнуть. |
PDO::TRAN_SERIALIZABLE |
Самый высокий уровень изоляции (6). Грязное, неповторяющееся и фантомное чтение невозможны. |
Следующие константы передают, когда получают информацию о схеме. Эти константы передают в метод PDO::cubrid_schema().
Константы | Описание |
---|---|
PDO::CUBRID_SCH_TABLE |
Получить имя и тип таблицы CUBRID. |
PDO::CUBRID_SCH_VIEW |
Получить имя и тип представления в CUBRID. |
PDO::CUBRID_SCH_QUERY_SPEC |
Получить определение запроса представления. |
PDO::CUBRID_SCH_ATTRIBUTE |
Получить атрибуты столбца таблицы. |
PDO::CUBRID_SCH_TABLE_ATTRIBUTE |
Получить атрибуты таблицы. |
PDO::CUBRID_SCH_METHOD |
Получить метод экземпляра. Метод экземпляра — метод, который вызвал экземпляр класса. Методом экземпляра пользуются чаще, чем методом класса, поскольку большинство операций выполняют в экземпляре. |
PDO::CUBRID_SCH_TABLE_METHOD |
Получить метод класса. Метод класса — метод, который вызвал объект класса. Методом класса обычно создают новый экземпляр класса или инициализируют его. Метод также вызывают, чтобы получить доступ или обновить атрибуты класса. |
PDO::CUBRID_SCH_METHOD_FILE |
Получить информацию о файле, в котором определили метод таблицы. |
PDO::CUBRID_SCH_SUPER_TABLE |
Получить имя и тип таблицы, из которой таблица наследует атрибуты. |
PDO::CUBRID_SCH_SUB_TABLE |
Получить имя и тип таблицы, которая наследует атрибуты из этой таблицы. |
PDO::CUBRID_SCH_CONSTRAINT |
Получить ограничения таблицы. |
PDO::CUBRID_SCH_TRIGGER |
Получить триггеры таблицы. |
PDO::CUBRID_SCH_TABLE_PRIVILEGE |
Получить информацию о правах на таблицу. |
PDO::CUBRID_SCH_COL_PRIVILEGE |
Получить информацию о правах на столбец. |
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE |
Получить прямую супертаблицу для заданной таблицы. |
PDO::CUBRID_SCH_PRIMARY_KEY |
Получить первичный ключ таблицы. |
PDO::CUBRID_SCH_IMPORTED_KEYS |
Получить импортированные ключи таблицы. |
PDO::CUBRID_SCH_EXPORTED_KEYS |
Получить экспортированные ключи таблицы. |
PDO::CUBRID_SCH_CROSS_REFERENCE |
Получить связи двух таблиц. |