Rechercher une fonction PHP

CUBRID Functions (PDO_CUBRID)

Introduction

PDO_CUBRID is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to CUBRID databases.

Note:

Current version of PDO_CUBRID doesn't support persistent connection now.

Eerste pagina van Manuel PHP  Inhoudsopgave Haut

Installation

To build the PDO_CUBRID extension, the CUBRID DBMS must be installed on the same system as PHP. PDO_CUBRID is a » PECL extension, so follow the instructions in Installation of PECL extensions to install the PDO_CUBRID extension. Issue the configure command to point to the location of your CUBRID base dir as follows:

   $ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
The configure command defaults to the value of the CUBRID environment variable.

A DLL for this PECL extension is currently unavailable. See also the building on Windows section. Detailed information about installation on Linux and Windows manually, please read build-guide.html in PECL package CUBRID for reference.

Eerste pagina van Manuel PHP  Inhoudsopgave Haut

Features

PDO_CUBRID Features
Feature Description
Scrollable cursors PDO_CUBRID supports scrollable cursors. The default cursor type is forward only, and you can use parameter driver_options in PDO::prepare() to change cursor type.
Timeout PDO_CUBRID supports sql statement execution timeout setting; You can use PDO::setAttribute() to set timeout value.
Autocommit_mode and Transaction PDO_CUBRID supports both autocommit_mode and transaction, and autocommit_mode is enabled by default. You can use PDO::setAttribute() to change its state.

If you use PDO::beginTransaction() to begin a transaction, it will disable autocommit_mode automatically and restore it after PDO::commit() or PDO::rollBack(). Note that before disabling the autocommit_mode, any pending work is automatically committed.

Multiple SQL Statements PDO_CUBRID supports Multiple SQL statements. Multiple SQL statements are separated by semicolons (;)
Schema Information PDO_CUBRID implements a function PDO::cubrid_schema() to get schema information.
LOBs PDO_CUBRID supports BLOB/CLOB data type. The LOB in PDO is represented as a stream, so you can insert LOBs by binding a stream, and get LOBs by reading a stream returned by CUBRID PDO. For example:

Example #1 Insert LOBs in 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$fpPDO::PARAM_LOB);
$ret $stmt->execute();
?>

Example #2 Fetch LOBs in 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]);
?>

Column meta The PDOStatement::getColumnMeta() in CUBRID PDO will return an associative array containing the following values:
  • type
  • name
  • table
  • def
  • precision
  • scale
  • not_null
  • auto_increment
  • unique_key
  • multiple_key
  • primary_key
  • foreign_key
  • reverse_index
  • reverse_unique
Collection Data Type PDO_CUBRID supports SET/MULTISET/SEQUENCE data type. If you don't specify data type, the default data type is char,for example:

Example #3 Insert set in CUBRID PDO with default data type.

<?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$dataPDO::PARAM_NULL);
$ret $stmt->execute();
var_Dump($ret);
?>

Example #4 Specify data type when insert set in 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$data0,0,"int");
$ret $stmt->execute();
var_Dump($ret);
?>

CUBRID Bind Data Types:(The fifth parameter of PDOStatement::bindParam):
  • CHAR
  • STRING
  • NCHAR
  • VARNCHAR
  • BIT
  • VARBIT
  • NUMERIC
  • NUMBER
  • INT
  • SHORT
  • BIGINT
  • MONETARY
  • FLOAT
  • DOUBLE
  • DATE
  • TIME
  • DATETIME
  • TIMESTAMP

Eerste pagina van Manuel PHP  Inhoudsopgave Haut

Predefined Constants

The constants below are defined by this driver, and will only be available when the extension has been either compiled into PHP or dynamically loaded at runtime. In addition, these driver-specific constants should only be used if you are using this driver. Using driver-specific attributes with another driver may result in unexpected behaviour. PDO::getAttribute() may be used to obtain the PDO::ATTR_DRIVER_NAME attribute to check the driver, if your code can run against multiple drivers.

The following constants can be used when setting the database attribute. They can be passed to PDO::getAttribute() or PDO::setAttribute().

PDO::CUBRID attribute flags
Constant Description
PDO::CUBRID_ATTR_ISOLATION_LEVEL Transaction isolation level for the database connection.
PDO::CUBRID_ATTR_LOCK_TIMEOUT Transaction timeout in seconds.
PDO::CUBRID_ATTR_MAX_STRING_LENGTH Read only. The maximum string length for bit, varbit, char, varchar, nchar, nchar varying data types when using CUBRID PDO API.

The following constants can be used when setting the transaction isolation level. They can be passed to PDO::getAttribute() or returned by PDO::setAttribute().

PDO::CUBRID isolation level flags
Constant Description
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE The lowest isolation level (1). A dirty, non-repeatable or phantom read may occur for the tuple and a non-repeatable read may occur for the table as well.
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE A relatively low isolation level (2). A dirty read does not occur, but non-repeatable or phantom read may occur.
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE The default isolation of CUBRID (3). A dirty, non-repeatable or phantom read may occur for the tuple, but repeatable read is ensured for the table.
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE A relatively low isolation level (4). A dirty read does not occur, but non-repeatable or phantom read may.
PDO::TRAN_REP_CLASS_REP_INSTANCE A relatively high isolation level (5). A dirty or non-repeatable read does not occur, but a phantom read may.
PDO::TRAN_SERIALIZABLE The highest isolation level (6). Problems concerning concurrency (e.g. dirty read, non-repeatable read, phantom read, etc.) do not occur.

The following constants can be used when getting schema information. They can be passed to PDO::cubrid_schema().

PDO::CUBRID schema flags
Constant Description
PDO::CUBRID_SCH_TABLE Get name and type of table in CUBRID.
PDO::CUBRID_SCH_VIEW Get name and type of view in CUBRID.
PDO::CUBRID_SCH_QUERY_SPEC Get the query definition of view.
PDO::CUBRID_SCH_ATTRIBUTE Get the attributes of table column.
PDO::CUBRID_SCH_TABLE_ATTRIBUTE Get the attributes of table.
PDO::CUBRID_SCH_METHOD Get the instance method. The instance method is a method called by a class instance. It is used more often than the class method because most operations are executed in the instance.
PDO::CUBRID_SCH_TABLE_METHOD Get the class method. The class method is a method called by a class object. It is usually used to create a new class instance or to initialize it. It is also used to access or update class attributes.
PDO::CUBRID_SCH_METHOD_FILE Get the information of the file where the method of the table is defined.
PDO::CUBRID_SCH_SUPER_TABLE Get the name and type of table which table inherites attributes from.
PDO::CUBRID_SCH_SUB_TABLE Get the name and type of table which inherites attributes from this table.
PDO::CUBRID_SCH_CONSTRAINT Get the table constraints.
PDO::CUBRID_SCH_TRIGGER Get the table triggers.
PDO::CUBRID_SCH_TABLE_PRIVILEGE Get the privilege information of table.
PDO::CUBRID_SCH_COL_PRIVILEGE Get the privilege information of column.
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE Get the direct super table of table.
PDO::CUBRID_SCH_PRIMARY_KEY Get the table primary key.
PDO::CUBRID_SCH_IMPORTED_KEYS Get imported keys of table.
PDO::CUBRID_SCH_EXPORTED_KEYS Get exported keys of table.
PDO::CUBRID_SCH_CROSS_REFERENCE Get reference relationship of tow tables.

Eerste pagina van Manuel PHP  Inhoudsopgave Haut

Table of Contents

Zoek een PHP-functie

Vertaling niet beschikbaar

De PHP-handleiding is nog niet in het Nederlands vertaald, dus het scherm is in het Engels. Als u wilt, kunt u het ook in het Frans of in het Duits raadplegen.

Als je de moed voelt, kun je je vertaling aanbieden ;-)

Nederlandse vertaling

U hebt gevraagd om deze site in het Nederlands te bezoeken. Voor nu wordt alleen de interface vertaald, maar nog niet alle inhoud.

Als je me wilt helpen met vertalingen, is je bijdrage welkom. Het enige dat u hoeft te doen, is u op de site registreren en mij een bericht sturen waarin u wordt gevraagd om u toe te voegen aan de groep vertalers, zodat u de gewenste pagina's kunt vertalen. Een link onderaan elke vertaalde pagina geeft aan dat u de vertaler bent en heeft een link naar uw profiel.

Bij voorbaat dank.

Document heeft de 30/01/2003 gemaakt, de laatste keer de 26/10/2018 gewijzigd
Bron van het afgedrukte document:https://www.gaudry.be/nl/php-rf-ref.pdo-cubrid.html

De infobrol is een persoonlijke site waarvan de inhoud uitsluitend mijn verantwoordelijkheid is. De tekst is beschikbaar onder CreativeCommons-licentie (BY-NC-SA). Meer info op de gebruiksvoorwaarden en de auteur.

Referenties

  1. Bekijk - html-document Taal van het document:fr Manuel PHP : http://php.net

Deze verwijzingen en links verwijzen naar documenten die geraadpleegd zijn tijdens het schrijven van deze pagina, of die aanvullende informatie kunnen geven, maar de auteurs van deze bronnen kunnen niet verantwoordelijk worden gehouden voor de inhoud van deze pagina.
De auteur Deze site is als enige verantwoordelijk voor de manier waarop de verschillende concepten, en de vrijheden die met de referentiewerken worden genomen, hier worden gepresenteerd. Vergeet niet dat u meerdere broninformatie moet doorgeven om het risico op fouten te verkleinen.

Inhoudsopgave Haut