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 admite conexiones persistentes.

Instalación

Para construir la extensión PDO_CUBRID, CUBRID DBMS debe estar instalado en el mismo sistema donde se ejecute PHP. PDO_CUBRID es una extensión » PECL, por lo que se han de seguir las instrucciones dadas 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 valor predeterminado del comando configure es el de la variable de entorno de CUBRID.

Actualmente, no hay ninguna DLL disponible para esta extensión PECL. Véase también la sección Compilación 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 obtener referencias.

Características

Características de PDO_CUBRID
CaracterísticaDescripción
Cursores desplazables PDO_CUBRID admite cursores desplazables. El tipo de cursor predeterminado es de sólo avance, y se puede usar el parámetro driver_options de PDO::prepare() para cambiar el tipo de cursor.
Tiempo de esperaPDO_CUBRID admite 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 admite autocommit_mode y transacciones, y autocommit_mode está habilitado 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 PDO::rollBack(). Obsérvese que antes de deshabilitar autocommit_mode, cualquier trabajo pendiente es consignado automáticamente.

Sentencias SQL múltiplesPDO_CUBRID admite sentencias SQL múltiples. Las sentencias SQL múltiples están serparadas por puntos y comas (;)
Información del esquemaPDO_CUBRID implementa la función PDO::cubrid_schema() para obtener la información del esquema.
LOBsPDO_CUBRID admite 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 de un flujo devuelto por CUBRID PDO. Por ejemplo:

Ejemplo #1 Insertar LOBs en CUBRID PDO

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

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

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

Ejemplo #2 Obtener LOBs en CUBRID PDO

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

$sentencia = $dbh->prepare($sent_sql);
$sentencia->execute();
$resultado = $sentencia->fetch(PDO::FETCH_NUM);

header("Content-Type: image/png");
fpassthru($resultado[0]);
?>
Metadatos 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
Tipos de datos de coleccionesPDO_CUBRID admite los tipos de datos SET/MULTISET/SEQUENCE. Si no se especifica el tipo de datos, el predeterminado es char, por ejemplo:

Ejemplo #3 Insertar un conjunto en CUBRID PDO con el tipo de datos predeterminado.

<?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 un 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 de vinculación de CUBRID:(El quinto parámetro 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 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
ConstanteDescripción
PDO::CUBRID_ATTR_ISOLATION_LEVELNivel de aislamiento de las transacciones para la conexión de la base de datos.
PDO::CUBRID_ATTR_LOCK_TIMEOUTTiempo de espera de las transacciones en segundos.
PDO::CUBRID_ATTR_MAX_STRING_LENGTHSólo lectura. La longitud máxima de cadena para los diversos tipos de datos bit, varbit, char, varchar, nchar, nchar al utilizar la API de CUBRID PDO.

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

Banderas de nivel de aislamiento de PDO::CUBRID
ConstanteDescripción
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCEEl nivel de aislamiento más bajo (1). Podría 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_INSTANCEUn nivel relativamente bajo de aislamiento (2). No ocurre una lectura sucia, pero podría ocurrir una lectura no repetible o fantasma.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCEEl nivel predeterminado de aislamiento de CUBRID (3). Podría 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_INSTANCEUn nivel relativamente bajo de aislamiento (4). No ocurre una lectura sucia, pero sí podría ocurrir una lectura no repetible o fantasma.
PDO::TRAN_REP_CLASS_REP_INSTANCEUn nivel de aislamiento relativamente alto (5). No ocurre una lectura sucia o no repetible, pero sí podría ocurrir una lectura fantasma.
PDO::TRAN_SERIALIZABLEEl 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
ConstanteDescripción
PDO::CUBRID_SCH_TABLEObtener el nombre y el tipo de tabla de CUBRID.
PDO::CUBRID_SCH_VIEWObtener el nombre y el tipo de vista de CUBRID.
PDO::CUBRID_SCH_QUERY_SPECObtener la definición de la consulta de la vista.
PDO::CUBRID_SCH_ATTRIBUTEObtener los atributos de la columnas de la tabla.
PDO::CUBRID_SCH_TABLE_ATTRIBUTEObtener los atributos de la tabla.
PDO::CUBRID_SCH_METHODObtener el método de instancia. El método de instancia es un método invocado por una instancia de 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_METHODObtener el método de la clase. El método de la clase es un método invocado por un objeto de clase. Se usa normalmente para crear una nueva instancia de clase o para inicializarla. También se usa para acceder o actualizar los atributos de la clase.
PDO::CUBRID_SCH_METHOD_FILEObtener la información del fichero donde el método de la tabla está definido.
PDO::CUBRID_SCH_SUPER_TABLEObtener el nombre y el tipo de la tabla desde la que se heredan atributos.
PDO::CUBRID_SCH_SUB_TABLEObtener el nombre y el tipo de la tabla que hereda los atributos desde esta tabla.
PDO::CUBRID_SCH_CONSTRAINTObtener las restricciones de la tabla.
PDO::CUBRID_SCH_TRIGGERObtener los disparadores de la tabla.
PDO::CUBRID_SCH_TABLE_PRIVILEGEObtener la información de privilegios de la tabla.
PDO::CUBRID_SCH_COL_PRIVILEGEObtener la información de los privilegios de la columna.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLEObtener la super tabla directa de la tabla.
PDO::CUBRID_SCH_PRIMARY_KEYObtener la clave primaria de la tabla.
PDO::CUBRID_SCH_IMPORTED_KEYSObtener las claves importadas de la tabla.
PDO::CUBRID_SCH_EXPORTED_KEYSObtener las claves exportadas de la tabla.
PDO::CUBRID_SCH_CROSS_REFERENCEObtener la relación de referencia de las tablas a remolque.

Tabla de contenidos

To Top