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.
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 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]
이 PECL 확장에 대한 DLL은 현재 사용할 수 없습니다. 윈도우에서 빌드하기 섹션을 참고하십시오. Detailed information about installation on Linux and Windows manually, please read build-guide.html in PECL package CUBRID for reference.
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 enabled 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 #1 Insert LOBs in CUBRID PDO
<?php
Example #2 Fetch LOBs in CUBRID PDO
<?php |
Column meta |
The PDOStatement::getColumnMeta() in CUBRID PDO
will return an associative array containing the following values:
|
Collection Data Type | PDO_CUBRID supports SET/MULTISET/SEQUENCE data type. If you don't specify data type,
the default data type is char,for example:
Example #3 Insert set in CUBRID PDO with default data type.
<?php
Example #4 Specify data type when insert set in CUBRID PDO
<?php
|
아래 상수는 이 드라이버에서 정의된
것으로, 확장을 PHP에 컴파일하였거나 실행중에 동적 로드하였을 때만 사용할 수
있습니다. 추가로, 드라이버-특정 상수는 이 드라이버를 사용할 때만 사용할 수
있습니다. mysql-특정 속성를 postgres 드라이버에서 사용하면 기대하지 않은
작동을 할 수 있습니다. 코드에서 여러 드라이버를 실행한다면,
PDO::getAttribute()를 사용하여
PDO_ATTR_DRIVER_NAME
속성으로 드라이버를 확인할 수
있습니다.
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. |