Controladores PDO
PHP Manual

Funciones de CUBRID (PDO_CUBRID)

Introducción

PDO_CUBRID es un controlador que implementa la interfaz de Objetos de Datos de PHP (PDO) para habilitar el acceso desde PHP a bases de datos de CUBRID.

Nota:

Por ahora, la versión actual de PDO_CUBRID no soporta conexiones persistentes.

Instalación

Para contruir la extensión PDO_CUBRID, CUBRID DBMS debe estar instalado en el mismo sistema donde se ejecuta PHP. PDO_CUBRID es una extensión » PECL, por lo que debe seguir las instrucciones en Instalación de extensiones PECL para instalar la extensión PDO_CUBRID. Ejecute el comando configure para indicar la ubicación del directorio base de CUBRID de la siguiente manera:

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

No hay una DLL disponible para esta extensión PECL actualmente. Vea también la sección Compilando en Windows . Para información detallada sobre la instalación manual en Linux y Windows, por favor lea build-guide.html en el paquete PECL CUBRID para referencias.

Características

Características de PDO_CUBRID
Características Descripción
Cursores desplazables PDO_CUBRID soporta cursores desplazables. El tipo de cursor predeterminado es sólo hacia adelante, y se puede usar el parámetro driver_options de PDO::prepare() para cambiar el tipo de cursor.
Tiempo de espera PDO_CUBRID soporta la configuracion del tiempo de espera de las ejecuciones de sentencias SQL; Se puede utilizar PDO::setAttribute() para establecer el valor del tiempo de espera.
Autocommit_mode y Transacciones PDO_CUBRID soporta autocommit_mode y transacciones, y autocommit_mode está deshabilitado por omisión. Se puede usar PDO::setAttribute() para cambiar su estado.

Si se usa PDO::beginTransaction() para iniciar una transacción se desactivará autocommit_mode automaticamente y lo restablecerá despuésres de usar PDO::commit() o PDO::rollBack(). Observe que antes de deshabilitar autocommit_mode, cualquier trabajo pendiente es consignado automáticamente.

Sentencias SQL Múltiples PDO_CUBRID soporta sentencias SQL Múltiples. Las sentencias SQL Múltiples están serparadas por punto y coma (;)
Información del Esquema PDO_CUBRID implementa la función PDO::cubrid_schema() para obtener la información del esquema.
LOBs PDO_CUBRID soporta los tipos de datos BLOB/CLOB. El tipo LOB en PDO es representado como un flujo, por lo que pueden insertarse 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$fpPDO::PARAM_LOB);
$ret $stmt->execute();
?>

Ejemplo #2 Obtener 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]);
?>

Metainformación de Columna La función PDOStatement::getColumnMeta() de 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

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.

Las siguientes constantes se puden usar al establecer el atributo de la base de datos. Se puede pasar a PDO::getAttribute() o a PDO::setAttribute().

Banderas de atributo de PDO::CUBRID
Constante Descripción
PDO::CUBRID_ATTR_ISOLATION_LEVEL Nivel de aislamiento de las transacciones para la conexión de la base de datos.
PDO::CUBRID_ATTR_LOCK_TIMEOUT Tiempo de espera de las transacciones en segundos.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH Sólo lectura. La longitud máxima de cadena para los tipos de datos bit, varbit, char, varchar, nchar, nchar varying al utilizar la API CUBRID PDO.

Las siguientes constantes se puden usar al estableder el nivel de aislamiento de las transacciones. Se pueden a PDO::getAttribute() o ser devueltas por PDO::setAttribute().

Banderas de nivel de aislamiento de PDO::CUBRID
Constante Descripción
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE El nivel de aislamiento más bajo (1). Puede ocurrir una lectura sucia, no repetible o fantasma para la tupla y puede ocurrir también una lectura no repetible para la tabla.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE Un nivel relativamente bajo de aislamiento (2). No ocurre una lectura sucia, pero puede ocurrir una lectura no repetible o fantasma.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE El nivel predeterminado de aislamiento de CUBRID (3). Puede ocurrir una lectura sucia, no repetible o fantasma para la tupla, pero se garantiza una lectura repetible para la tabla.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE Un nivel relativamente bajo de aislamiento (4). No puede ocurrir una lectura sucia, pero sí una lectura no repetible o fantasma.
PDO::TRAN_REP_CLASS_REP_INSTANCE Un nivel de aislamiento relativamente alto (5). No ocurre una lectura sucia o no repetible, pero sí puede ocurrir una lectura fantasma.
PDO::TRAN_SERIALIZABLE El nivel de aislamiento más alto (6). No ocurren los problemas concernientes a la concurrencia (p.ej. lectura sucia, no repetible, fantasma, etc.).

Las siguientes constantes se pueden usar al obtener la información del esquema. Se pueden pasar a PDO::cubrid_schema().

Banderas de esquema de PDO::CUBRID
Constante Descripción
PDO::CUBRID_SCH_TABLE Obtener el nombre y el tipo de tabla de CUBRID.
PDO::CUBRID_SCH_VIEW Obtener el nombre y el tipo de vista de CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC Obtener la definición de la consulta de la vista.
PDO::CUBRID_SCH_ATTRIBUTE Get the attributes of table column.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE Obtener los atributos de la tabla.
PDO::CUBRID_SCH_METHOD Obtener el método de instancia. El método de instancia es un método llamado por una instancia de una clase. Se usa más a menudo que el método de la clase ya que se ejecutan más operaciones en la instancia.
PDO::CUBRID_SCH_TABLE_METHOD Obtener el método de la clase. El método de la clase es un método llamado por un objeto de clase. Se usar normalmente para crear una nueva instnacia de clase o para inicializarla. También se usa para acceder o actualizar los atributos de la clase.
PDO::CUBRID_SCH_METHOD_FILE Obtener la información del fichero donde el método de la tabla está definido.
PDO::CUBRID_SCH_SUPER_TABLE Obtener el nombre y el tipo de la tabla desde la que hereda atributos.
PDO::CUBRID_SCH_SUB_TABLE Obtener el nombre y el tipo de la tabla que hereda los atributos desde esta tabla.
PDO::CUBRID_SCH_CONSTRAINT Obtener las restricciones de la tabla.
PDO::CUBRID_SCH_TRIGGER Obtener los desencadenantes de la tabla.
PDO::CUBRID_SCH_TABLE_PRIVILEGE Obtener la información de privilegios de la tabla.
PDO::CUBRID_SCH_COL_PRIVILEGE Obtener la información de privilegios de la columna.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE Obtener la super tabla directa de la tabla.
PDO::CUBRID_SCH_PRIMARY_KEY Obtener la clave primaria de la tabla.
PDO::CUBRID_SCH_IMPORTED_KEYS Obtener las claves importadas de la tabla.
PDO::CUBRID_SCH_EXPORTED_KEYS Obtener las claves exportadas de la tabla.
PDO::CUBRID_SCH_CROSS_REFERENCE Obtener la relación de referencia de las tablas a remolque.

Tabla de contenidos


Controladores PDO
PHP Manual