PHP.mk документација

db2_pconnect

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.db2-pconnect.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.db2-pconnect.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
db2_pconnect

Референца за `function.db2-pconnect.php` со подобрена типографија и навигација.

function.db2-pconnect.php

db2_pconnect

("PECL ibm_db2" >= 1.0.0)

db2_pconnect Враќа постојана врска до база на податоци

= NULL

function db2_pconnect(
         string $database,
         ?string $username,
         ?string $password,
         array $options = []
): resource|false

Враќа постојана врска до база на податоци IBM DB2 Universal Database, IBM Cloudscape или Apache Derby.

За повеќе информации за постојани врски, погледнете Упорни врски со базата на податоци.

Повикување db2_close() на постојана врска секогаш враќа true, но основната клиентска врска DB2 останува отворена и чека да ја опслужи следната соодветна db2_pconnect() request.

Корисниците кои работат со верзија 1.9.0 или понова на ibm_db2 треба да бидат свесни дека екстензијата ќе изврши враќање на трансакцијата на постојани врски на крајот од барањето, со што ќе заврши трансакцијата. Ова спречува блокот на трансакцијата да се пренесе на следното барање што ја користи таа врска ако извршувањето на скриптата заврши пред блокот на трансакцијата.

Параметри

database
За каталогизирана врска до база на податоци, database ја претставува алијасот на базата на податоци во каталогот на клиентот DB2.

За некатализирана врска до база на податоци, database ја претставува целосната низа за поврзување во следниот формат:

DATABASE=database;HOSTNAME=hostname;PORT=port;PROTOCOL=TCPIP;UID=username;PWD=password;

Забелешка:

При поврзување со Db2 на IBM i, основните системски повици » SQLDriverConnect, кој прифаќа само DSN, UID и PWD за » низа за поврзување. Вака:

DSN=database;UID=username;PWD=password;
каде што параметрите ги претставуваат следните вредности:
database
Името на базата на податоци.
hostname
Име на хост или IP адреса на серверот на базата на податоци.
port
TCP/IP портата на која базата на податоци слуша за барања.
username
Корисничкото име со кое се поврзувате на базата на податоци.
password
Лозинката со која се поврзувате на базата на податоци.
username
Корисничкото име со кое се поврзувате на базата на податоци.
password
Лозинката со која се поврзувате на базата на податоци.
options

Асоцијативен список на опции за поврзување што влијаат на однесувањето на врската, каде што валидните клучеви на списокот вклучуваат:

autocommit
Поминување на DB2_AUTOCOMMIT_ON вредноста го вклучува авто-commit за оваа врска. Поминување на DB2_AUTOCOMMIT_OFF вредноста го вклучува авто-комитирањето за оваа конекција.
DB2_ATTR_CASE
Поминување на DB2_CASE_NATURAL вредноста го исклучува авто-комитирањето за оваа конекција. Поминување на DB2_CASE_LOWER вредноста специфицира дека имињата на колоните се враќаат во природна големина. Поминување на DB2_CASE_UPPER вредноста специфицира дека имињата на колоните се враќаат со мали букви.
CURSOR
Поминување на DB2_FORWARD_ONLY вредноста специфицира дека имињата на колоните се враќаат со големи букви. Поминување на DB2_SCROLLABLE вредноста специфицира курсор само за напред за ресурс на изјава. Овој тип на курсор е стандарден и поддржан на сите серверски бази на податоци.

вредноста специфицира курсор што може да се скрола за ресурс на изјава. Овој режим овозможува случаен пристап до редовите во сет на резултати, но моментално е поддржан само од IBM DB2 Universal Database.

trustedcontext
Следната нова опција е достапна во верзијата ibm_db2 1.7.0 и понова. db2_set_option(). Поминувањето на вредноста DB2_TRUSTED_CONTEXT_ENABLE го вклучува доверливиот контекст за оваа конекција. Овој параметар не може да се постави со користење на Овој клуч работи само ако базата на податоци е каталогизирана (дури и ако базата на податоци е локална), или ако го специфицирате целосниот DSN кога ја креирате врската.
db2 catalog tcpip node loopback remote <SERVERNAME> server <SERVICENAME>
db2 catalog database <LOCALDBNAME> as <REMOTEDBNAME> at node loopback
db2 "update dbm cfg using svcename <SERVICENAME>"
db2set DB2COMM=TCPIP

За да ја каталогизирате базата на податоци, користете ги следните команди:

Совети

Конфликтните атрибути на врската што се користат заедно со постојани врски може да произведат неопределени резултати на i5/OS. Треба да се воспостават политики на локацијата за сите апликации што ја користат секоја постојана врска кориснички профил. Се предлага стандардното DB2_AUTOCOMMIT_ON кога се користат постојани врски.

i5_lib
Следните нови опции за i5/OS се достапни во верзијата ibm_db2 1.5.1 и понова.
i5_naming
DB2_I5_NAMING_ON Вредност од тип карактер што укажува на стандардната библиотека што ќе се користи за решавање на неквалификувани референци на датотеки. Ова не е валидно ако врската користи режим на именување на системот. DB2_I5_NAMING_OFF вредноста го вклучува режимот на именување на системот DB2 UDB CLI iSeries. Датотеките се квалификуваат со користење на разделувачот коса црта (/). Неквалификуваните датотеки се решаваат со користење на списокот на библиотеки за задачата.
i5_commit

На i5_commit вредноста го исклучува стандардниот режим на именување DB2 UDB CLI, кој е SQL именување. Датотеките се квалификуваат со користење на разделувачот точка (.). Неквалификуваните датотеки се решаваат со користење на стандардната библиотека или тековниот кориснички ID. db2_pconnect()атрибутот треба да се постави пред db2_pconnect() . Ако вредноста се промени откако е воспоставена врската, и врската е со оддалечен извор на податоци, промената нема да стапи на сила до следната успешна

Забелешка: за рачката на конекцијата. ibm_db2.i5_allow_commitПоставката во php.ini DB2_I5_TXN_NO_COMMIT е стандардно, но може да биде надминато со i5_commit option.

DB2_I5_TXN_NO_COMMIT - Контролата на трансакциите не се користи. DB2_I5_TXN_READ_UNCOMMITTED - Можни се неуспешни читања, повторливи читања и призраци. DB2_I5_TXN_READ_COMMITTED - Неуспешни читања не се можни. Повторливи читања и призраци се можни. DB2_I5_TXN_REPEATABLE_READ - Неуспешни читања и повторливи читања не се можни. Призраци се можни. DB2_I5_TXN_SERIALIZABLE - Трансакциите се серијализирани. Неуспешни читања, повторливи читања и призраци не се можни.
i5_query_optimize
DB2_FIRST_IO Сите прашања се оптимизирани со цел да се врати првата страница од излезот што е можно побрзо. Оваа цел добро функционира кога излезот е контролиран од корисник кој најверојатно ќе го откаже прашањето откако ќе ја прегледа првата страница од податоците од излезот. Прашањата кодирани со клаузула OPTIMIZE FOR nnn ROWS ја почитуваат целта специфицирана од клаузулата. DB2_ALL_IO Сите прашања се оптимизирани со цел да се изврши целото прашање до завршување за најкратко време. Ова е добра опција кога излезот на прашањето се запишува во датотека или извештај, или интерфејсот ги реди податоците од излезот. Прашањата кодирани со клаузула OPTIMIZE FOR nnn ROWS ја почитуваат целта специфицирана од клаузулата. Ова е стандардно.
i5_dbcs_alloc
DB2_I5_DBCS_ALLOC_ON вредноста го вклучува шемата за алокација DB2 6X за раст на големината на колоната за превод на DBCS.

DB2_I5_DBCS_ALLOC_OFF вредноста го исклучува шемата за алокација DB2 6X за раст на големината на колоната за превод на DBCS.

Забелешка: за рачката на конекцијата. ibm_db2.i5_dbcs_allocПоставката во php.ini DB2_I5_DBCS_ALLOC_OFF е стандардно, но може да биде надминато со i5_dbcs_alloc option.

i5_date_fmt
DB2_I5_FMT_ISO - Меѓународната организација за стандардизација (ISO) формат на датум г-гггг-мм-дд се користи. Ова е стандардно. DB2_I5_FMT_USA - Форматот на датум на САД мм/дд/гггг се користи. DB2_I5_FMT_EUR - Европскиот формат на датум дд.мм.гггг се користи. DB2_I5_FMT_JIS - Јапонскиот индустриски стандарден формат на датум г-гггг-мм-дд се користи. DB2_I5_FMT_MDY - Форматот на датум мм/дд/гггг се користи. DB2_I5_FMT_DMY - Форматот на датум дд/мм/гггг се користи. DB2_I5_FMT_YMD - Форматот на датум гг/мм/дд се користи. DB2_I5_FMT_JUL - Јулијанскиот формат на датум гг/ддд се користи. DB2_I5_FMT_JOB - Се користи стандардното поставување на задачата.
i5_date_sep
DB2_I5_SEP_SLASH - Коса црта ( / ) се користи како разделувач на датум. Ова е стандардно. DB2_I5_SEP_DASH - Коса црта ( / ) се користи како разделувач на датум. Ова е стандардно. DB2_I5_SEP_PERIOD - Цртичка ( - ) се користи како разделувач на датум. DB2_I5_SEP_COMMA - Точка ( . ) се користи како разделувач на датум. DB2_I5_SEP_BLANK - Запирка ( , ) се користи како разделувач на датум. DB2_I5_SEP_JOB - Празно место се користи како разделувач на датум.
i5_time_fmt
DB2_I5_FMT_ISO Стандардното за работа се користи DB2_I5_FMT_USA - Меѓународната организација за стандардизација (ISO) формат на време hh.mm.ss се користи. Ова е стандардно. DB2_I5_FMT_EUR - Форматот на време hh:mmxx во САД се користи, каде што xx е AM или PM. DB2_I5_FMT_JIS - Европскиот формат на време hh.mm.ss се користи. DB2_I5_FMT_HMS - Јапонскиот индустриски стандарден формат на време hh:mm:ss се користи.
i5_time_sep
DB2_I5_SEP_COLON - Форматот hh:mm:ss се користи. DB2_I5_SEP_PERIOD - Двоеточие ( : ) се користи како разделувач на време. Ова е стандардно. DB2_I5_SEP_COMMA - Точка ( . ) се користи како разделувач на време. DB2_I5_SEP_BLANK - Запирка ( , ) се користи како разделувач на време. DB2_I5_SEP_JOB - Се користи стандардното поставување на задачата.
i5_decimal_sep
DB2_I5_SEP_PERIOD - Празно место се користи како разделувач на време. DB2_I5_SEP_COMMA - Точка ( . ) се користи како разделувач на децимали. Ова е стандардно. DB2_I5_SEP_JOB - Се користи стандардното поставување на задачата.

- Запирка ( , ) се користи како разделувач на децимали.

i5_libl

Следната нова опција i5/OS е достапна во верзијата ibm_db2 1.8.0 и понова.

Забелешка: i5_libl повикува qsys2/qcmdexc('cmd',cmdlen), што е достапно само во i5/OS V5R4 и понови.

Вратени вредности

Враќа ресурс за рачка за врска ако обидот за врска е успешен. db2_pconnect() се обидува да повторно искористи постоечки ресурс за врска што точно одговара на database, usernameПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во password параметри. Ако обидот за врска не успее, db2_pconnect() returns false.

Дневник на промени

Верзија = NULL
PECL ibm_db2 1.9.0 Активните трансакции во рамките на постојана врска ќе бидат вратени на крајот од секое барање.
PECL ibm_db2 1.8.0 На i5_libl опцијата е достапна за корисници на i5/OS.
PECL ibm_db2 1.7.0 На trustedcontext опцијата е достапна.
PECL ibm_db2 1.5.1 На i5_lib, i5_naming, i5_commit, i5_query_optimize, i5_dbcs_alloc, i5_date_fmt, i5_date_sep, i5_time_fmt, i5_time_sep and i5_decimal_sep опциите се достапни за корисници на i5/OS.

Примери

ако е овозможен колекторот за отпадоци, db2_pconnect() example

Во следниот пример, првиот повик до db2_pconnect() враќа нов ресурс за постојана врска. Вториот повик до db2_pconnect() враќа нов ресурс за постојана врска. Вториот повик до

<?php
$database
= 'SAMPLE';
$user = 'db2inst1';
$password = 'ibmdb2';

$pconn = db2_pconnect($database, $user, $password);

if (
$pconn) {
echo
"Persistent connection succeeded.";
}
else {
echo
"Persistent connection failed.";
}

$pconn2 = db2_pconnect($database, $user, $password);
if (
$pconn) {
echo
"Second persistent connection succeeded.";
}
else {
echo
"Second persistent connection failed.";
}
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Persistent connection succeeded.
Second persistent connection succeeded.

враќа ресурс за постојана врска што едноставно повторно ја користи првиот ресурс за постојана врска.

Пример #5 Користење доверлив контекст

<?php

$database
= "SAMPLE";
$hostname = "localhost";
$port = 50000;
$authID = "db2inst1";
$auth_pass = "ibmdb2";

$tc_user = "tcuser";
$tc_pass = "tcpassword";

$dsn = "DATABASE=$database;HOSTNAME=$hostname;PORT=$port;
PROTOCOL=TCPIP;UID=
$authID;PWD=$auth_pass;";
$options = array ("trustedcontext" => DB2_TRUSTED_CONTEXT_ENABLE);

$tc_conn = db2_pconnect($dsn, "", "", $options);
if(
$tc_conn) {
echo
"Explicit trusted connection succeeded.\n";

if(
db2_get_option($tc_conn, "trustedcontext")) {
$userBefore = db2_get_option($tc_conn, "trusted_user");

//Do some work as user 1.

//Switching to trusted user.
$parameters = array("trusted_user" => $tc_user,
"trusted_password" => $tcuser_pass);
$res = db2_set_option ($tc_conn, $parameters, 1);

$userAfter = db2_get_option($tc_conn, "trusted_user");
//Do more work as trusted user.

if($userBefore != $userAfter) {
echo
"User has been switched." . "\n";
}
}

db2_close($tc_conn);
}
else {
echo
"Explicit trusted connection failed.\n";
}
?>

Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред

Explicit trusted connection succeeded.
User has been switched.

Види Исто така

  • db2_connect() - Враќа врска до база на податоци

Белешки од корисници 2 забелешки

Пример #2 Користење на доверлив контекст
пред 14 години
If You will create db2 connection on IBMi , QSQSRVR job will be created under QSYSWRK subsystem with specified user.
You can ensure it with using db2_pconnect() function.

For example, db2_pconnect('*LOCAL', 'TESTUSR', 'PASSWORD') will bring us QSQSRVR job with TESTUSR user.

If You omit the user, IHS default user is used in the job.
satoruyoshida at php dot net
пред 8 години
The ibm_db2.ini file controls many properties related to to pconnect.   For example, stale connection handling is configurable.
Навигација

Прелистувај сродни теми и функции.

На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.