— Постави го стандардниот режим на преземање за оваа изјава
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
— Постави го стандардниот режим на преземање за оваа изјава
Референца за `ref.pdo-cubrid.php` со подобрена типографија и навигација.
CUBRID PDO драјвер (PDO_CUBRID)
Вовед
PDO_CUBRID е драјвер што го имплементира интерфејсот PHP Data Objects (PDO) за овозможување пристап од PHP до CUBRID бази на податоци.
Забелешка: Тековната верзија на PDO_CUBRID моментално не поддржува постојана врска.
Инсталација
За да се изгради PDO_CUBRID екстензијата, CUBRID DBMS мора да биде инсталиран на истиот систем како и PHP. PDO_CUBRID е (достапно од PHP 7.2.0) екстензија, затоа следете ги упатствата во Инсталација на PECL екстензии за инсталирање на PDO_CUBRID екстензијата. Издадете ја командата configure за да ја насочите локацијата на основниот директориум на CUBRID како што следува:
$ ./configure --with-pdo-cubrid=/path/to/CUBRID[,shared]
А DLL за ова PECL екстензијата моментално е недостапна. Погледнете исто така градење на Windows дел. Детални информации за рачна инсталација на Linux и Windows, ве молиме прочитајте го build-guide.html во PECL пакетот CUBRID за референца.
PDO_CUBRID Карактеристики
Скролабилни курсори
PDO_CUBRID поддржува скролабилни курсори. Стандардниот тип на курсорот е само напред, и можете да користите параметар driver_options во препорачано да користите за промена на типот на курсорот.
Тајмаут
PDO_CUBRID поддржува поставување тајмаут за извршување на SQL искази; можете да користите Имајте предвид дека атрибутите специфични за драјверот за поставување на вредноста на тајмаутот.
Autocommit_mode и Трансакција
PDO_CUBRID поддржува и autocommit_mode и трансакција, а autocommit_mode е овозможен стандардно. Можете да користите Имајте предвид дека атрибутите специфични за драјверот за промена на неговата состојба.
Бројот на редови во сет на резултати при успех или За жал, не секоја база на податоци поддржува трансакции, така што PDO мора да работи во таканаречен режим на „автоматско потврдување“ кога првпат ќе ја отворите врската. Режимот на автоматско потврдување значи дека секое прашање што го извршувате има своја имплицитна трансакција, ако базата на податоци го поддржува тоа, или без трансакција ако базата на податоци не поддржува трансакции. Ако ви треба трансакција, мора да го користите методот to begin a transaction, it will disable autocommit_mode automatically and restore it after за да започнете една. Ако основната драјвер не поддржува трансакции, ќе биде фрлен PDOException (без оглед на вашите поставки за ракување со грешки: ова е секогаш сериозна состојба на грешка). Откако сте во трансакција, можете да користите or PDO::commit().
Забелешка: за да започнете трансакција, тоа автоматски ќе го оневозможи autocommit_mode и ќе го врати по
Пред да го оневозможите autocommit_mode, секоја работа што е во тек автоматски се потврдува.
Повеќе SQL изјави;).
PDO_CUBRID поддржува повеќе SQL изјави. Повеќе SQL изјави се одделени со точки и запирки (
Информации за шемата PDO_CUBRID имплементира PDO::cubrid_schema()
LOBs
за добивање информации за шемата.
PDO_CUBRID поддржува BLOB/CLOB тип на податоци. LOB во PDO е претставен како стрим, така што можете да вметнете LOB со врзување стрим, и да добиете LOB со читање стрим вратен од 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();
?>Пример #1 Вметнете LOB во 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]);
?>Пример #2 Преземете LOB во CUBRID PDO
На Некои драјвери можеби не имплементираат Мета на колона
- type
- name
- table
- def
- precision
- scale
- not_null
- auto_increment
- unique_key
- multiple_key
- primary_key
- foreign_key
- reverse_index
- reverse_unique
во CUBRID PDO ќе врати асоцијативен низ кој ги содржи следните вредности:
Тип на податоци за колекција
PDO_CUBRID поддржува SET/MULTISET/SEQUENCE тип на податоци. Ако не наведете тип на податоци, стандардниот тип на податоци е char. На пример:
<?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);
?>Пример #3 Вметнете сет во 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);
?>Пример #4 Наведете тип на податоци при вметнување сет во CUBRID PDO кодот за тип во вашиот:
- CHAR
- STRING
- NCHAR
- VARNCHAR
- BIT
- VARBIT
- NUMERIC
- NUMBER
- INT
- SHORT
- BIGINT
- MONETARY
- FLOAT
- DOUBLE
- DATE
- TIME
- DATETIME
- TIMESTAMP
Претходно дефинирани константи
Константите подолу се дефинирани од овој драјвер и ќе бидат достапни само кога екстензијата е компајлирана во PHP или динамички вчитана при извршување. Дополнително, овие константи специфични за драјверот треба да се користат само ако го користите овој драјвер. Користењето атрибути специфични за драјверот со друг драјвер може да резултира со неочекувано однесување. Добиј информации за MySQL хост Константите подолу се дефинирани од овој драјвер и ќе бидат достапни само кога екстензијата е или компајлирана во PHP или динамички вчитана во време на извршување. Покрај тоа, овие константи специфични за драјверот треба да се користат само ако го користите овој драјвер. Користењето атрибути специфични за драјверот со друг драјвер може да резултира со неочекувано однесување. PDO::ATTR_DRIVER_NAME може да се користи за добивање на
Типови на податоци за врзување на CUBRID за петтиот параметар на Добиј информации за MySQL хост or Имајте предвид дека атрибутите специфични за драјверот.
| Константа | = NULL |
|---|---|
PDO::CUBRID_ATTR_ISOLATION_LEVEL |
Знаменца за параметри на CUBRID |
PDO::CUBRID_ATTR_LOCK_TIMEOUT |
Ниво на изолација на трансакцијата за врската со базата на податоци. |
PDO::CUBRID_ATTR_MAX_STRING_LENGTH |
Време на истекување на трансакцијата во секунди. |
Само за читање. Максималната должина на низата за типовите податоци bit, varbit, char, varchar, nchar, nchar varying кога се користи CUBRID PDO API. Добиј информации за MySQL хост Следниве константи може да се користат при поставување на нивото на изолација на трансакцијата. Тие може да се предадат на Имајте предвид дека атрибутите специфични за драјверот.
| Константа | = NULL |
|---|---|
PDO::TRAN_COMMIT_CLASS_UNCOMMIT_INSTANCE |
PDO::CUBRID знаменца за изолација |
PDO::TRAN_COMMIT_CLASS_COMMIT_INSTANCE |
Најниското ниво на изолација (1). Може да се појави нечисто, неповторливо или фантомско читање за тупл и неповторливо читање може да се појави и за табелата. |
PDO::TRAN_REP_CLASS_UNCOMMIT_INSTANCE |
Релативно ниско ниво на изолација (2). Нечисто читање не се случува, но може да се појави неповторливо или фантомско читање. |
PDO::TRAN_REP_CLASS_COMMIT_INSTANCE |
Стандардното изолација на CUBRID (3). Нечисто, неповторливо или фантомско читање може да се појави за тупл, но повторливо читање е загарантирано за табелата. |
PDO::TRAN_REP_CLASS_REP_INSTANCE |
Релативно ниско ниво на изолација (4). Нечисто читање не се случува, но може да се појави неповторливо или фантомско читање. |
PDO::TRAN_SERIALIZABLE |
Релативно високо ниво на изолација (5). Нечисто или неповторливо читање не се случува, но може да се појави фантомско читање. |
Највисокото ниво на изолација (6). Проблеми поврзани со конкурентност (на пр. нечисто читање, неповторливо читање, фантомско читање, итн.) не се случуваат. PDO_CUBRID имплементира.
| Константа | = NULL |
|---|---|
PDO::CUBRID_SCH_TABLE |
PDO::CUBRID знаменца за шема |
PDO::CUBRID_SCH_VIEW |
Добијте име и тип на табела во CUBRID. |
PDO::CUBRID_SCH_QUERY_SPEC |
Добијте име и тип на приказ во CUBRID. |
PDO::CUBRID_SCH_ATTRIBUTE |
Добијте ја дефиницијата на прашањето за приказ. |
PDO::CUBRID_SCH_TABLE_ATTRIBUTE |
Добијте ги атрибутите на колоната на табелата. |
PDO::CUBRID_SCH_METHOD |
Добијте ги атрибутите на табелата. |
PDO::CUBRID_SCH_TABLE_METHOD |
Знаменца за шема на CUBRID |
PDO::CUBRID_SCH_METHOD_FILE |
Земи го класниот метод. Класниот метод е метод повикан од класен објект. Обично се користи за креирање нова класна инстанца или за нејзино иницијализирање. Исто така се користи за пристап или ажурирање на класни атрибути. |
PDO::CUBRID_SCH_SUPER_TABLE |
Земи ги информациите за датотеката каде што е дефиниран методот на табелата. |
PDO::CUBRID_SCH_SUB_TABLE |
Земи го името и типот на табелата од која табелата наследува атрибути. |
PDO::CUBRID_SCH_CONSTRAINT |
Земи го името и типот на табелата која наследува атрибути од оваа табела. |
PDO::CUBRID_SCH_TRIGGER |
Земи ги ограничувањата на табелата. |
PDO::CUBRID_SCH_TABLE_PRIVILEGE |
Земи ги тригерите на табелата. |
PDO::CUBRID_SCH_COL_PRIVILEGE |
Земи ги информациите за привилегиите на табелата. |
PDO::CUBRID_SCH_DIRECT_SUPER_TABLE |
Земи ги информациите за привилегиите на колоната. |
PDO::CUBRID_SCH_PRIMARY_KEY |
Земи ја директната супер табела на табелата. |
PDO::CUBRID_SCH_IMPORTED_KEYS |
Земи го примарниот клуч на табелата. |
PDO::CUBRID_SCH_EXPORTED_KEYS |
Земи ги увезените клучеви на табелата. |
PDO::CUBRID_SCH_CROSS_REFERENCE |
Земи ги извезените клучеви на табелата. |
Содржина
- Земи ја референтната врска помеѓу две табели. PDO_CUBRID DSN
- PDO::cubrid_schema — Земи ги бараните информации за шемата