Fonctions du pilote PDO CUBRID (PDO_CUBRID)

Introduction

PDO_CUBRID est un pilote qui implémente l' interface PHP Data Objects (PDO) pour permettre l'accÚs à partir de PHP aux bases de données CUBRID.

Note: La version actuelle de PDO_CUBRID ne prend pas en charge la connexion persistante pour le moment.

Installation

Pour construire l'extension PDO_CUBRID, CUBRID DBMS doit ĂȘtre installĂ© sur le mĂȘme systĂšme que PHP. PDO_CUBRID est une extension » PECL, aussi, il faut suivre les instructions de Installation d'extensions PECL pour installer l'extension PDO_CUBRID. Lancez la commande configure pour localiser le dossier de base de CUBRID comme ceci :

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
La commande configure prendra par défaut la valeur de la variable d'environnement CUBRID.

Aucune bibliothĂšque DLL pour cette extension PECL n'est actuellement disponible. Reportez-vous Ă  la section Compilation sous Windows. Des informations sur l'installation manuelle sous Linux et Windows peuvent ĂȘtre trouvĂ©es dans le fichier build-guide.html du paquet CUBRID de PECL.

Fonctionnalités de PDO_CUBRID

Curseurs défilables

PDO_CUBRID prend en charge les curseurs défilables. Le type de curseur par défaut est forward only, et il est possible d'utiliser le paramÚtre driver_options dans PDO::prepare() pour changer le type de curseur.

Délai d'expiration

PDO_CUBRID prend en charge le paramétrage du délai d'exécution de l'instruction SQL ; Il est possible d'utiliser PDO::setAttribute() pour définir la valeur du délai d'expiration.

Mode autocommit et transaction

PDO_CUBRID prend en charge à la fois le mode autocommit et la transaction, et le mode autocommit est activé par défaut. Il est possible d'utiliser PDO::setAttribute() pour changer son état.

Lors de l'utilisation de PDO::beginTransaction() pour commencer une transaction, cela désactivera automatiquement le mode autocommit et le restaurera aprÚs PDO::commit() ou PDO::rollBack().

Note: Avant de désactiver le mode autocommit, tout travail en attente est automatiquement validé.

Instructions SQL multiples

PDO_CUBRID prend en charge les instructions SQL multiples. Les instructions SQL multiples sont séparées par des points-virgules (;).

Informations sur le schéma

PDO_CUBRID implémente PDO::cubrid_schema() pour obtenir des informations sur le schéma.

LOBs

PDO_CUBRID prend en charge les types de données BLOB/CLOB. Le LOB dans PDO est représenté comme un flux, il est possible de donc insérer des LOBs en liant un flux, et obtenir des LOBs en lisant un flux retourné par CUBRID PDO. Par exemple :

Exemple #1 Insérer des LOBs dans 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();
?>

Exemple #2 Récupérer des LOBs dans 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]);
?>

Méta-colonne

La méthode PDOStatement::getColumnMeta() dans CUBRID PDO renverra un tableau associatif contenant les valeurs suivantes :

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

Type de données Collection

PDO_CUBRID prend en charge les types de données SET/MULTISET/SEQUENCE. Si on ne spécifie pas le type de données, le type de données par défaut est char. Par exemple :

Exemple #3 Insérer un ensemble dans CUBRID PDO avec le type de données par défaut.

<?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);
?>

Exemple #4 Spécifier le type de données lors de l'insertion d'un ensemble dans 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);
?>

Types de données CUBRID Bind pour le cinquiÚme paramÚtre de PDOStatement::bindParam() :

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

Constantes pré-définies

Les constantes ci-dessous sont dĂ©finies par ce pilote et seront seulement disponibles lorsque l'extension aura Ă©tĂ© compilĂ©e dans PHP ou chargĂ©e dynamiquement du moteur d'exĂ©cution. De plus, ces constantes spĂ©cifiques au pilote devraient ĂȘtre utilisĂ©es seulement si vous utilisez ce pilote. En utilisant les attributs spĂ©cifiques Ă  un pilote avec un autre pilote pourrait causer un comportement inattendu. PDO::getAttribute() pourrait ĂȘtre utilisĂ© pour obtenir l'attribut PDO::ATTR_DRIVER_NAME pour vĂ©rifier le pilote, si votre code peut fonctionner sur des pilotes multiples.

Les constantes suivantes peuvent ĂȘtre utilisĂ©es pour configurer les attributs de la base de donnĂ©es. Elles peuvent ĂȘtre passĂ©es Ă  la mĂ©thode PDO::getAttribute() ou Ă  la mĂ©thode PDO::setAttribute().

Drapeaux pour les attributs PDO::CUBRID
Constante Description
PDO::CUBRID_ATTR_ISOLATION_LEVEL Le niveau d'isolation de la transaction pour la connexion à la base de données.
PDO::CUBRID_ATTR_LOCK_TIMEOUT Délai d'expiration de la transaction en secondes.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH Lecture seule. La longueur maximale de la chaßne pour les types de données bit, varbit, char, varchar, nchar, nchar lors de l'utilisation de l'API CUBRID PDO.

Les constantes suivantes peuvent ĂȘtre utilisĂ©es lors de la configuration du niveau d'isolation de la transaction. Elles peuvent ĂȘtre passĂ©es Ă  la mĂ©thode PDO::getAttribute() ou Ă  la mĂ©thode PDO::setAttribute().

Drapeaux pour le niveau d'isolation PDO::CUBRID
Constante Description
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE Le niveau d'isolation le moins élevé (1). Une lecture sale, non reproductible ou fantÎme peut survenir sur le tuple, mais aussi une lecture non reproductible peut survenir pour la table.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE Un niveau d'isolation relativement bas (2). Une lecture sale ne peut pas survenir, par contre, une lecture non reproductible ou fantĂŽme peut survenir.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE Le niveau d'isolation par défaut pour CUBRID (3). Une lecture sale ou fantÎme peut survenir sur le tuple, mais la reproductibilité de la lecture est assurée sur la table.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE Un niveau d'isolation relativement bas (4). Une lecture sale ne peut survenir, mais les lectures non reproductibles ou fantĂŽme le peuvent.
PDO::TRAN_REP_CLASS_REP_INSTANCE Un niveau d'isolation relativement haut (5). Les lectures sales ou non reproductibles ne peuvent pas survenir, mais une lecture fantĂŽme est possible.
PDO::TRAN_SERIALIZABLE Le plus haut niveau d'isolation (6). Les problĂšmes relatifs Ă  la concurrence (c.-Ă -d. lecture sale, lecture non reproductible, lecture fantĂŽme, etc.) ne peuvent survenir.

Les constantes suivantes peuvent ĂȘtre utilisĂ©es pour rĂ©cupĂ©rer les informations sur le schĂ©ma. Elles peuvent ĂȘtre passĂ©es Ă  la fonction PDO::cubrid_schema().

Drapeaux pour le schéma CUBRID
Constante Description
PDO::CUBRID_SCH_TABLE RécupÚre le nom et le type de table CUBRID.
PDO::CUBRID_SCH_VIEW RécupÚre le nom et le type de vue dans CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC RĂ©cupĂšre la dĂ©finition de la requĂȘte de la vue.
PDO::CUBRID_SCH_ATTRIBUTE RécupÚre les attributs de la colonne de la table.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE RécupÚre les attributs de la table.
PDO::CUBRID_SCH_METHOD RécupÚre la méthode de l'instance. C'est une méthode appelée par l'instance de la classe. Elle est utilisée plus souvent que la méthode de la classe car la plupart des opérations sont exécutées dans l'instance.
PDO::CUBRID_SCH_TABLE_METHOD RécupÚre la méthode de la classe. C'est une méthode appelée par un objet de la classe. Elle est habituellement utilisée pour créer une nouvelle instance de la classe ou pour l'initialiser. Elle est également utilisée pour accéder ou mettre à jour les attributs de la classe.
PDO::CUBRID_SCH_METHOD_FILE RĂ©cupĂšre les informations sur le fichier oĂč la mĂ©thode de la table est dĂ©finie.
PDO::CUBRID_SCH_SUPER_TABLE RécupÚre le nom et le type de la table dont les attributs héritent.
PDO::CUBRID_SCH_SUB_TABLE RécupÚre le nom et le type de la table qui hérite des attributs de cette table.
PDO::CUBRID_SCH_CONSTRAINT RécupÚre les contraintes de la table.
PDO::CUBRID_SCH_TRIGGER RécupÚre les triggers de la table.
PDO::CUBRID_SCH_TABLE_PRIVILEGE RécupÚre les informations sur les privilÚges de la table.
PDO::CUBRID_SCH_COL_PRIVILEGE RécupÚre les informations sur les privilÚges d'une colonne.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE RécupÚre la table directement supérieure à la table.
PDO::CUBRID_SCH_PRIMARY_KEY RécupÚre la clé primaire de la table.
PDO::CUBRID_SCH_IMPORTED_KEYS RécupÚre les clés importées d'une table.
PDO::CUBRID_SCH_EXPORTED_KEYS RécupÚre les clés exportées d'une table.
PDO::CUBRID_SCH_CROSS_REFERENCE RécupÚre les relations de référence entre 2 tables.

Sommaire

add a note

User Contributed Notes

There are no user contributed notes for this page.