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::getAttribute() для получения атрибута PDO::ATTR_DRIVER_NAME
для проверки драйвера.
Следующие константы можно использовать для установки аттрибутов базы данных. Данные константы можно использовать с функциями 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 при использовании CUBRID PDO API. |
Следующие константы можно использовать для установки уровня изоляции транзакции. Данные константы можно использовать с функциями 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 | Получение имени и типа view в CUBRID. |
PDO::CUBRID_SCH_QUERY_SPEC | Получение SQL-запроса, с помощью которого создано view. |
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 | Получить связи двух таблиц. |