Fonctions CUBRID (PDO_CUBRID)

Introduction

PDO_CUBRID est un driver implémentant l' interface PHP Data Objects (PDO) pour activer l'accès depuis PHP aux bases de données CUBRID.

Note:

La version courante de PDO_CUBRID ne supporte pas les connexions persistantes.

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, vous devez 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

Fonctionnalités PDO_CUBRID
Fonctionnalités Description
Curseurs scrollables PDO_CUBRID supporte les curseurs scrollables. Le type de curseur par défaut est uniquement un curseur permettant de se déplacer vers l'avant, et vous pouvez utiliser le paramètre driver_options de la méthode PDO::prepare() pour modifier ce type de curseur.
Délai d'expiration PDO_CUBRID supporte le délai d'expiration d'exécution d'une requête sql ; vous pouvez utiliser la méthode PDO::setAttribute() pour définir la valeur.
Autocommit_mode et transaction PDO_CUBRID supporte à la fois l'autocommit_mode et la transaction (autocommit_mode est désactivé par défaut). Vous pouvez utiliser la méthode PDO::setAttribute() pour modifier ce comportement.

Si vous utilisez PDO::beginTransaction() pour commencer une transaction, la méthode désactivera automatiquement l'autocommit_mode et l'activera de nouveau après un appel à la méthode PDO::commit() ou la méthode PDO::rollBack(). Notez qu'avant de désactiver l'autocommit_mode, tous les travaux en attente seront automatiquement commités.

Requêtes SQL multiples PDO_CUBRID supporte les requêtes SQL multiples. Elles sont séparées par un point virgule (;).
Informations sur un schéma PDO_CUBRID implémente la méthode PDO::cubrid_schema() pour récupérer les informations sur le schéma.
LOBs PDO_CUBRID supporte les types de données BLOB/CLOB. Le LOB en PDO est représenté sous la forme d'un flux, aussi, vous pouvez insérer des LOBs en liant un flux et récupérer des LOBs en lisant un flux retourné par CUBRID PDO. Par exemple :

Exemple #1 Insertion de 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ère des LOBs depuis 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-données des colonnes La méthode PDOStatement::getColumnMeta() en CUBRID PDO retournera 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 de la collection PDO_CUBRID supporte les types de données SET/MULTISET/SEQUENCE. Si vous n'en spécifiez aucun, le type de données par défaut sera char, par exemple :

Exemple #3 Insertion d'un jeu 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écifie le type de données lors de l'insertion du jeu 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 liées CUBRID :(Le cinquième paramètre de la méthode 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 non fiable, 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 non fiable 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 non fiable ou fantôme peut survenir sur le tuple, mais la reproductibilité de la lecture est assurée sur le table.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE Un niveau d'isolation relativement bas (4). Une lecture non fiable 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 non fiables 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 (i.e. lecture non fiable, 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 dont les attributs héritent.
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

LoadingChargement en cours