PHP 8.4.1 Released!

Fonctions CUBRID (PDO_CUBRID)

Introduction

PDO_CUBRID est un pilote qui implémente l' interface PHP Data Objects (PDO) pour permettre l'accès depuis 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, 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 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 vous pouvez 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 ; Vous pouvez 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. Vous pouvez utiliser PDO::setAttribute() pour changer son état.

Si vous utilisez 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, vous pouvez 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 vous ne spécifiez 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 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

add a note

User Contributed Notes

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