CUBRID Functions (PDO_CUBRID)
Introducción
PDO_CUBRID is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to CUBRID databases.
Note:
Current version of PDO_CUBRID doesn't support persistent connection now.
Instalación
To build the PDO_CUBRID extension, the CUBRID DBMS must be installed on the same system as PHP. PDO_CUBRID is a » PECL extension, so follow the instructions in Instalación de extensiones PECL to install the PDO_CUBRID extension. Issue the configure command to point to the location of your CUBRID base dir as follows:
$ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
No hay una DLL disponible para esta extensión PECL actualmente. Vea también la sección Compilando en Windows. Detailed information about installation on Linux and Windows manually, please read build-guide.html in PECL package CUBRID for reference.
Features
| Feature | Description |
|---|---|
| Scrollable cursors | PDO_CUBRID supports scrollable cursors. The default cursor type is forward only, and you can use parameter driver_options in PDO::prepare() to change cursor type. |
| Timeout | PDO_CUBRID supports sql statement execution timeout setting; You can use PDO::setAttribute() to set timeout value. |
| Autocommit_mode and Transaction |
PDO_CUBRID supports both autocommit_mode and transaction, and
autocommit_mode is disabled by default. You can use
PDO::setAttribute() to change its state.
If you use PDO::beginTransaction() to begin a transaction, it will disable autocommit_mode automatically and restore it after PDO::commit() or PDO::rollBack(). Note that before disabling the autocommit_mode, any pending work is automatically committed. |
| Multiple SQL Statements | PDO_CUBRID supports Multiple SQL statements. Multiple SQL statements are separated by semicolons (;) |
| Schema Information | PDO_CUBRID implements a function PDO::cubrid_schema() to get schema information. |
| LOBs | PDO_CUBRID supports BLOB/CLOB data type. The LOB in PDO is
represented as a stream, so you can insert LOBs by binding a stream,
and get LOBs by reading a stream returned by CUBRID PDO. For example:
Example #2 Insert LOBs in CUBRID PDO
<?php
Example #3 Fetch LOBs in CUBRID PDO
<?php |
| Column meta |
The PDOStatement::getColumnMeta() in CUBRID PDO
will return an associative array containing the following values:
|
Constantes predefinidas
Estas constantes están definidas por este driver, y estarán disponibles sólo cuando la extensión haya sido compilada con PHP, o bien sea cargada dinámicamente en ejecución. Además, estas constantes driver-specific deberían ser utilizadas sólo si está usando este driver. Usar atributos driver-specific con otro driver puede resultar en un comportamiento inesperado. PDO::getAttribute() puede ser empleado para obtener el atributo PDO_ATTR_DRIVER_NAME para comprobar el driver, si su código puede correr con múltiples drivers.
The following constants can be used when setting the database attribute. They can be passed to PDO::getAttribute() or PDO::setAttribute().
| Constant | Description |
|---|---|
| PDO::CUBRID_ATTR_ISOLATION_LEVEL | Transaction isolation level for the database connection. |
| PDO::CUBRID_ATTR_LOCK_TIMEOUT | Transaction timeout in seconds. |
| PDO::CUBRID_ATTR_MAX_STRING_LENGTH | Read only. The maximum string length for bit, varbit, char, varchar, nchar, nchar varying data types when using CUBRID PDO API. |
The following constants can be used when setting the transaction isolation level. They can be passed to PDO::getAttribute() or returned by PDO::setAttribute().
| Constant | Description |
|---|---|
| PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE | The lowest isolation level (1). A dirty, non-repeatable or phantom read may occur for the tuple and a non-repeatable read may occur for the table as well. |
| PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE | A relatively low isolation level (2). A dirty read does not occur, but non-repeatable or phantom read may occur. |
| PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE | The default isolation of CUBRID (3). A dirty, non-repeatable or phantom read may occur for the tuple, but repeatable read is ensured for the table. |
| PDO::TRAN_REP_CLASS_COMMIT_INSTANCE | A relatively low isolation level (4). A dirty read does not occur, but non-repeatable or phantom read may. |
| PDO::TRAN_REP_CLASS_REP_INSTANCE | A relatively high isolation level (5). A dirty or non-repeatable read does not occur, but a phantom read may. |
| PDO::TRAN_SERIALIZABLE | The highest isolation level (6). Problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur. |
The following constants can be used when getting schema information. They can be passed to PDO::cubrid_schema().
| Constant | Description |
|---|---|
| PDO::CUBRID_SCH_TABLE | Get name and type of table in CUBRID. |
| PDO::CUBRID_SCH_VIEW | Get name and type of view in CUBRID. |
| PDO::CUBRID_SCH_QUERY_SPEC | Get the query definition of view. |
| PDO::CUBRID_SCH_ATTRIBUTE | Get the attributes of table column. |
| PDO::CUBRID_SCH_TABLE_ATTRIBUTE | Get the attributes of table. |
| PDO::CUBRID_SCH_METHOD | Get the instance method. The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance. |
| PDO::CUBRID_SCH_TABLE_METHOD | Get the class method. The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes. |
| PDO::CUBRID_SCH_METHOD_FILE | Get the information of the file where the method of the table is defined. |
| PDO::CUBRID_SCH_SUPER_TABLE | Get the name and type of table which table inherites attributes from. |
| PDO::CUBRID_SCH_SUB_TABLE | Get the name and type of table which inherites attributes from this table. |
| PDO::CUBRID_SCH_CONSTRAINT | Get the table constraints. |
| PDO::CUBRID_SCH_TRIGGER | Get the table triggers. |
| PDO::CUBRID_SCH_TABLE_PRIVILEGE | Get the privilege information of table. |
| PDO::CUBRID_SCH_COL_PRIVILEGE | Get the privilege information of column. |
| PDO::CUBRID_SCH_DIRECT_SUPER_TABLE | Get the direct super table of table. |
| PDO::CUBRID_SCH_PRIMARY_KEY | Get the table primary key. |
| PDO::CUBRID_SCH_IMPORTED_KEYS | Get imported keys of table. |
| PDO::CUBRID_SCH_EXPORTED_KEYS | Get exported keys of table. |
| PDO::CUBRID_SCH_CROSS_REFERENCE | Get reference relationship of tow tables. |
Table of Contents
- PDO_CUBRID DSN — Connecting to CUBRID databases
- PDO::cubrid_schema — Get the requested schema information
