Funciones del controlador PDO CUBRID (PDO_CUBRID)

Introducción

PDO_CUBRID es un controlador que implementa la interfaz PHP Data Objects (PDO) para permitir el acceso desde PHP a las bases de datos CUBRID.

Nota:

La versión actual de PDO_CUBRID no soporta la conexión persistente en este momento.

Instalación

Para construir la extensión PDO_CUBRID, el sistema de gestión de bases de datos CUBRID debe estar instalado en el mismo sistema que PHP. PDO_CUBRID es una extensión » PECL, por lo tanto, debe seguirse las instrucciones de Instalación de extensiones PECL para instalar la extensión PDO_CUBRID. Ejecute el comando configure para localizar el directorio base de CUBRID de la siguiente manera:

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
El comando configure tomará por omisión el valor de la variable de entorno CUBRID.

Actualmente, no hay ninguna DLL disponible para esta extensión PECL. Véase también la sección Compilación en Windows . Información sobre la instalación manual en Linux y Windows puede encontrarse en el archivo build-guide.html del paquete CUBRID de PECL.

Características de PDO_CUBRID

Cursores desplazables

PDO_CUBRID soporta los cursores desplazables. El tipo de cursor por omisión es forward only, y se puede utilizar el argumento driver_options en PDO::prepare() para cambiar el tipo de cursor.

Tiempo límite

PDO_CUBRID soporta la configuración del tiempo límite de ejecución de la instrucción SQL; se puede utilizar PDO::setAttribute() para definir el valor del tiempo límite.

Modo autocommit y transacción

PDO_CUBRID soporta tanto el modo autocommit como la transacción, y el modo autocommit está activado por omisión. Se puede utilizar PDO::setAttribute() para cambiar su estado.

Si se utiliza PDO::beginTransaction() para comenzar una transacción, esto desactivará automáticamente el modo autocommit y lo restaurará después de PDO::commit() o PDO::rollBack().

Nota: Antes de desactivar el modo autocommit, todo trabajo pendiente es validado automáticamente.

Instrucciones SQL múltiples

PDO_CUBRID soporta las instrucciones SQL múltiples. Las instrucciones SQL múltiples están separadas por puntos y coma (;).

Información sobre el esquema

PDO_CUBRID implementa PDO::cubrid_schema() para obtener información sobre el esquema.

LOBs

PDO_CUBRID soporta los tipos de datos BLOB/CLOB. El LOB en PDO es representado como un flujo, por lo que se pueden insertar LOBs vinculando un flujo, y obtener LOBs leyendo un flujo devuelto por CUBRID PDO. Por ejemplo:

Ejemplo #1 Insertar LOBs en CUBRID PDO

<?php
$fp
= fopen('lob_test.png', 'rb');

$sql_stmt = "INSERT INTO lob_test(name, content) VALUES('lob_test.png', ?)";

$stmt = $dbh->prepare($sql_stmt);
$ret = $stmt->bindParam(1, $fp, PDO::PARAM_LOB);
$ret = $stmt->execute();
?>

Ejemplo #2 Recuperar LOBs en CUBRID PDO

<?php
$sql_stmt
= "SELECT content FROM lob_test WHERE name='lob_test.png'";

$stmt = $dbh->prepare($sql_stmt);
$stmt->execute();
$result = $stmt->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($result[0]);
?>

Meta-columna

El método PDOStatement::getColumnMeta() en CUBRID PDO devolverá un array asociativo que contiene los siguientes valores:

  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique

Tipo de datos Collection

PDO_CUBRID soporta los tipos de datos SET/MULTISET/SEQUENCE. Si no se especifica el tipo de datos, el tipo de datos por omisión es char. Por ejemplo:

Ejemplo #3 Insertar un conjunto en CUBRID PDO con el tipo de datos por omisión.

<?php
$conn_str
="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(VARCHAR))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array("abc","def","ghi");
$ret = $stmt->bindParam(1, $data, PDO::PARAM_NULL);
$ret = $stmt->execute();
var_Dump($ret);
?>

Ejemplo #4 Especificar el tipo de datos al insertar un conjunto en CUBRID PDO

<?php
$conn_str
="cubrid:dbname=demodb;host=localhost;port=33000";
$cubrid_pdo = new PDO($conn_str, 'dba', '');

$cubrid_pdo->exec("DROP TABLE if exists test_tbl");
$cubrid_pdo->exec("CREATE TABLE test_tbl (col_1 SET(int))");

$sql_stmt_insert = "INSERT INTO test_tbl VALUES (?);";
$stmt = $cubrid_pdo->prepare($sql_stmt_insert);
$data = array(1,2,3,4);
$ret = $stmt->bindParam(1, $data, 0,0,"int");
$ret = $stmt->execute();
var_Dump($ret);
?>

Tipos de datos CUBRID Bind para el quinto argumento de PDOStatement::bindParam():

  • CHAR
  • STRING
  • NCHAR
  • VARNCHAR
  • BIT
  • VARBIT
  • NUMERIC
  • NUMBER
  • INT
  • SHORT
  • BIGINT
  • MONETARY
  • FLOAT
  • DOUBLE
  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP

Constantes predefinidas

Estas constantes están definidas por este controlador, 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 específicas del controlador deberían ser utilizadas sólo si está usando este controlador. Usar atributos específicos del controlador con otro controlador podría resultar en un comportamiento inesperado. PDO::getAttribute() puede ser empleado para obtener el atributo PDO::ATTR_DRIVER_NAME para verificar el controlador, si el código puede ejecutarse con múltiples controladores.

Las constantes siguientes pueden ser utilizadas para configurar los atributos de la base de datos. Pueden ser pasadas al método PDO::getAttribute() o al método PDO::setAttribute().

Banderas para los atributos PDO::CUBRID
Constante Descripción
PDO::CUBRID_ATTR_ISOLATION_LEVEL El nivel de aislamiento de la transacción para la conexión a la base de datos.
PDO::CUBRID_ATTR_LOCK_TIMEOUT Tiempo de expiración de la transacción en segundos.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH Solo lectura. La longitud máxima del string para los tipos de datos bit, varbit, char, varchar, nchar, nvarchar al utilizar la API CUBRID PDO.

Las constantes siguientes pueden ser utilizadas al configurar el nivel de aislamiento de la transacción. Pueden ser pasadas al método PDO::getAttribute() o al método PDO::setAttribute().

Banderas para el nivel de aislamiento PDO::CUBRID
Constante Descripción
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE El nivel de aislamiento más bajo (1). Una lectura no fiable, no reproducible o fantasma puede ocurrir sobre el tuple, pero también una lectura no reproducible puede ocurrir para la tabla.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE Un nivel de aislamiento relativamente bajo (2). Una lectura no fiable no puede ocurrir, pero una lectura no reproducible o fantasma puede ocurrir.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE El nivel de aislamiento por defecto para CUBRID (3). Una lectura no fiable o fantasma puede ocurrir sobre el tuple, pero la reproducibilidad de la lectura está asegurada sobre la tabla.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE Un nivel de aislamiento relativamente bajo (4). Una lectura no fiable no puede ocurrir, pero las lecturas no reproducibles o fantasma pueden ocurrir.
PDO::TRAN_REP_CLASS_REP_INSTANCE Un nivel de aislamiento relativamente alto (5). Las lecturas no fiables o no reproducibles no pueden ocurrir, pero una lectura fantasma es posible.
PDO::TRAN_SERIALIZABLE El nivel de aislamiento más alto (6). Los problemas relacionados con la concurrencia (i.e. lectura no fiable, lectura no reproducible, lectura fantasma, etc...) no pueden ocurrir.

Las constantes siguientes pueden ser utilizadas para recuperar la información sobre el esquema. Pueden ser pasadas a la función PDO::cubrid_schema().

Banderas para el esquema CUBRID
Constante Descripción
PDO::CUBRID_SCH_TABLE Recupera el nombre y el tipo de tabla CUBRID.
PDO::CUBRID_SCH_VIEW Recupera el nombre y el tipo de vista en CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC Recupera la definición de la consulta de la vista.
PDO::CUBRID_SCH_ATTRIBUTE Recupera los atributos de la columna de la tabla.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE Recupera los atributos de la tabla.
PDO::CUBRID_SCH_METHOD Recupera el método de la instancia. Es un método llamado por la instancia de la clase. Se utiliza más a menudo que el método de la clase ya que la mayoría de las operaciones se ejecutan en la instancia.
PDO::CUBRID_SCH_TABLE_METHOD Recupera el método de la clase. Es un método llamado por un objeto de la clase. Se utiliza habitualmente para crear una nueva instancia de la clase o para inicializarla. También se utiliza para acceder o actualizar los atributos de la clase.
PDO::CUBRID_SCH_METHOD_FILE Recupera la información sobre el archivo donde el método de la tabla está definido.
PDO::CUBRID_SCH_SUPER_TABLE Recupera el nombre y el tipo de la tabla de la que los atributos heredan.
PDO::CUBRID_SCH_SUB_TABLE Recupera el nombre y el tipo de la tabla de la que los atributos heredan.
PDO::CUBRID_SCH_CONSTRAINT Recupera las restricciones de la tabla.
PDO::CUBRID_SCH_TRIGGER Recupera los triggers de la tabla.
PDO::CUBRID_SCH_TABLE_PRIVILEGE Recupera la información sobre los privilegios de la tabla.
PDO::CUBRID_SCH_COL_PRIVILEGE Recupera la información sobre los privilegios de una columna.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE Recupera la tabla directamente superior a la tabla.
PDO::CUBRID_SCH_PRIMARY_KEY Recupera la clave primaria de la tabla.
PDO::CUBRID_SCH_IMPORTED_KEYS Recupera las claves importadas de una tabla.
PDO::CUBRID_SCH_EXPORTED_KEYS Recupera las claves exportadas de una tabla.
PDO::CUBRID_SCH_CROSS_REFERENCE Recupera las relaciones de referencia entre 2 tablas.

Tabla de contenidos

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top