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]
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 | 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();
?>
|
Méta-données des colonnes |
La méthode PDOStatement::getColumnMeta() en CUBRID PDO
retournera un tableau associatif contenant les valeurs suivantes :
|
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); ?>
|
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().
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().
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().
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
- DSN PDO_CUBRID — Connexion aux bases de données CUBRID
- PDO::cubrid_schema — Récupère le schéma d'informations demandé