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.db2_pconnect
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
db2_pconnect
Референца за `function.db2-pconnect.php` со подобрена типографија и навигација.
db2_pconnect
(PECL ibm_db2 >= 1.0.0)
db2_pconnect — Returns a persistent connection to a database
= NULL
string
$database,?string
$username,?string
$password,array
$options = []): resource|false
Returns a persistent connection to an IBM DB2 Universal Database, IBM Cloudscape, or Apache Derby database.
For more information on persistent connections, refer to Упорни врски со базата на податоци.
Повикување db2_close() on a persistent connection always returns true, but the underlying DB2 client connection remains open and waiting to serve the next matching db2_pconnect()
request.
Users running version 1.9.0 or later of ibm_db2 should be aware that the extension will perform a transaction rollback on persistent connections at the end of a request, thus ending the transaction. This prevents the transaction block from carrying over to the next request which uses that connection if script execution ends before the transaction block does.
Параметри
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_ONvalue turns autocommit on for this connection handle. Поминување на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
За да ја каталогизирате базата на податоци, користете ги следните команди:
СоветиConflicting connection attributes used in conjunction with persistent connections can produce indeterminate results on i5/OS. Site policies should be establish for all applications using each persistent connection user profile. The default DB2_AUTOCOMMIT_ON is suggested when using persistent connections.
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.iniDB2_I5_TXN_NO_COMMITе стандардно, но може да биде надминато соi5_commitoption.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.iniDB2_I5_DBCS_ALLOC_OFFе стандардно, но може да биде надминато соi5_dbcs_allocoption. 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- A slash ( / ) is used as the date separator. This is the default.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 calls qsys2/qcmdexc('cmd',cmdlen), which is only available in i5/OS V5R4 and later.
Вратени вредности
Returns a connection handle resource if the connection attempt is successful. db2_pconnect() tries to reuse an existing connection resource that exactly matches the
database, usernameПрепорачаниот начин за избегнување на SQL инјекција е со врзување на сите податоци преку подготвени изрази. Користењето на параметризирани прашања не е доволно за целосно избегнување на SQL инјекција, но тоа е најлесниот и најбезбедниот начин за обезбедување влез во SQL изразите. Сите динамични литерали на податоци во
password parameters. If the connection attempt fails,
db2_pconnect() returns false.
Дневник на промени
| Верзија | = NULL |
|---|---|
| PECL ibm_db2 1.9.0 | Active transactions within a persistent connection will be rolled back at the end of each request. |
| PECL ibm_db2 1.8.0 |
На i5_libl option is available for i5/OS users.
|
| PECL ibm_db2 1.7.0 |
На trustedcontext option is available.
|
| 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 options are available for i5/OS users.
|
Примери
ако е овозможен колекторот за отпадоци, db2_pconnect() example
In the following example, the first call to db2_pconnect() returns a new persistent connection resource. The second call to db2_pconnect() returns a persistent connection resource that simply reuses the first persistent connection resource.
<?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.
Example #2 Using trusted context
Пример #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 забелешки
The ibm_db2.ini file controls many properties related to to pconnect. For example, stale connection handling is configurable.