W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
(PECL ibm_db2 >= 1.0.0)
db2_pconnect — 返回與數(shù)據(jù)庫的持久連接
db2_pconnect(
string $database,
?string $username,
?string $password,
array $options = []
): resource|false
返回與 IBM DB2 通用數(shù)據(jù)庫 IBM 的持久連接 Cloudscape 或 Apache Derby 數(shù)據(jù)庫。
有關(guān)持久性的詳細信息 connections,請參閱持久數(shù)據(jù)庫連接。
始終在持久連接上調(diào)用 db2_close() 返回 true,但基礎(chǔ) DB2 客戶機連接保持打開狀態(tài),并且 等待為下一個匹配的 db2_pconnect() 請求提供服務(wù)。
運行 ibm_db2 版本 1.9.0 或更高版本的用戶應(yīng)注意 擴展將在 請求的結(jié)束,從而結(jié)束事務(wù)。這樣可以防止 事務(wù)塊從結(jié)轉(zhuǎn)到下一個使用該請求的請求 如果腳本執(zhí)行在事務(wù)塊之前結(jié)束,則連接。
database
DB2 客戶機目錄中的數(shù)據(jù)庫別名。
username
用于連接到數(shù)據(jù)庫的用戶名。
password
用于連接到數(shù)據(jù)庫的密碼。
options
影響行為的關(guān)聯(lián)連接選項數(shù)組 ,其中有效的數(shù)組鍵包括:
autocommit
傳遞值轉(zhuǎn)彎 為此連接句柄打開自動提交。DB2_AUTOCOMMIT_ON
傳遞值轉(zhuǎn)彎 此連接句柄的自動提交關(guān)閉。DB2_AUTOCOMMIT_OFF
DB2_ATTR_CASE
傳遞該值指定 該列名以自然大小寫返回。DB2_CASE_NATURAL
傳遞該值指定 該列名以小寫形式返回。DB2_CASE_LOWER
傳遞該值指定 該列名稱以大寫形式返回。DB2_CASE_UPPER
CURSOR
傳遞該值指定 語句資源的只進游標。這是默認設(shè)置 游標類型,并且在所有數(shù)據(jù)庫服務(wù)器上都受支持。DB2_FORWARD_ONLY
傳遞該值指定 語句資源的可滾動游標。此模式啟用 隨機訪問結(jié)果集中的行,但目前支持 僅由 IBM DB2 通用數(shù)據(jù)庫提供。DB2_SCROLLABLE
ibm_db2版本 1.7.0 中提供了以下新選項 和以后。
trustedcontext
傳遞DB2_TRUSTED_CONTEXT_ENABLE值可轉(zhuǎn)換為受信任的上下文 對于此連接句柄,請打開。不能使用 db2_set_option() 設(shè)置此參數(shù)。
僅當數(shù)據(jù)庫已編目時,此鍵才有效(即使 database is local),或者在創(chuàng)建時指定完整的 DSN 連接。
若要對數(shù)據(jù)庫進行編目,請使用以下命令:
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
ibm_db2版本 1.5.1 中提供了以下新的 i5/OS 選項 和以后。
與持久性結(jié)合使用的沖突連接屬性 連接可能會在 i5/OS 上產(chǎn)生不確定的結(jié)果。站點策略應(yīng) 使用每個持久連接用戶為所有應(yīng)用程序建立 輪廓。使用持久連接時,建議使用默認DB2_AUTOCOMMIT_ON。
i5_lib
一個字符值,該值指示將 用于解析不合格的文件引用。這是無效的 如果連接使用系統(tǒng)命名模式。
i5_naming
DB2_I5_NAMING_ON
value 打開 DB2 UDB CLI iSeries 系統(tǒng)命名模式。使用斜杠 (/) 分隔符限定文件。 使用作業(yè)的庫列表解析不合格的文件。
DB2_I5_NAMING_OFF
value 關(guān)閉 DB2 UDB CLI 缺省值 命名模式,即 SQL 命名。使用句點 (.) 限定文件 定界符。使用默認庫解析不合格的文件 或當前用戶 ID。
i5_commit
該屬性應(yīng)設(shè)置在 db2_pconnect() 之前。如果在 連接已建立,并且連接是遠程數(shù)據(jù) source,則更改在連接句柄的下一個成功 db2_pconnect() 之前不會生效。i5_commit
注意:
php.ini設(shè)置 ==0 或者是默認值,但可能是 被選項覆蓋。
ibm_db2.i5_allow_commit
DB2_I5_TXN_NO_COMMIT
i5_commit
DB2_I5_TXN_NO_COMMIT
- 不使用承諾控制。
DB2_I5_TXN_READ_UNCOMMITTED
- 臟讀,不可重復(fù) 讀取,幻影是可能的。
DB2_I5_TXN_READ_COMMITTED
- 無法進行臟讀。 不可重復(fù)的讀取和幻像是可能的。
DB2_I5_TXN_REPEATABLE_READ
- 臟讀和不可重復(fù) 無法讀取。幻影是可能的。
DB2_I5_TXN_SERIALIZABLE
- 事務(wù)是可序列化的。 無法進行臟讀取、不可重復(fù)讀取和幻像
i5_query_optimize
DB2_FIRST_IO
所有查詢都經(jīng)過優(yōu)化,目標是 盡快返回輸出的第一頁。這個目標效果很好 當輸出由最有可能取消查詢的用戶控制時 查看輸出數(shù)據(jù)的第一頁后。使用 OPTIMIZE FOR nnn ROWS 子句遵循子句指定的目標。
DB2_ALL_IO
所有查詢都經(jīng)過優(yōu)化,目標是運行 在最短的時間內(nèi)完成整個查詢。這是一個 當查詢的輸出被寫入文件或報表時,這是一個很好的選項,或者 接口正在對輸出數(shù)據(jù)進行排隊。使用 OPTIMIZE FOR nnn 編碼的查詢 ROWS 子句遵循子句指定的目標。這是默認設(shè)置。
i5_dbcs_alloc
DB2_I5_DBCS_ALLOC_ON
value 打開 DB2 6X 分配方案 用于 DBCS 轉(zhuǎn)換列大小的增長。
DB2_I5_DBCS_ALLOC_OFF
value 關(guān)閉 DB2 6X 分配方案 用于 DBCS 轉(zhuǎn)換列大小的增長。
注意:
php.ini設(shè)置 ==0 或為默認值,但可能會被覆蓋 替換為選項。
ibm_db2.i5_dbcs_alloc
DB2_I5_DBCS_ALLOC_OFF
i5_dbcs_alloc
i5_date_fmt
DB2_I5_FMT_ISO
- 國際標準化組織 使用 (ISO) 日期格式 yyyy-mm-dd。這是默認設(shè)置。
DB2_I5_FMT_USA
- 使用美國日期格式 mm/dd/yyyy。
DB2_I5_FMT_EUR
- 使用歐洲日期格式 dd.mm.yyyy。
DB2_I5_FMT_JIS
- 日本工業(yè)標準日期格式 使用 YYYY-MM-DD。
DB2_I5_FMT_MDY
- 使用日期格式 mm/dd/yyyy。
DB2_I5_FMT_DMY
- 使用日期格式 dd/mm/yyyy。
DB2_I5_FMT_YMD
- 使用日期格式 yy/mm/dd。
DB2_I5_FMT_JUL
- 使用儒略日期格式 yy/ddd。
DB2_I5_FMT_JOB
- 使用作業(yè)默認值。
i5_date_sep
DB2_I5_SEP_SLASH
- 斜杠 ( / ) 用作日期分隔符。 這是默認設(shè)置。
DB2_I5_SEP_DASH
- 短劃線 ( - ) 用作日期分隔符。
DB2_I5_SEP_PERIOD
- 句點 ( . ) 用作日期 分隔符。
DB2_I5_SEP_COMMA
- 逗號 ( , ) 用作日期分隔符。
DB2_I5_SEP_BLANK
- 空白用作日期分隔符。
DB2_I5_SEP_JOB
- 使用作業(yè)默認值
i5_time_fmt
DB2_I5_FMT_ISO
- 國際組織 使用標準化 (ISO) 時間格式 hh.mm.ss。這是默認設(shè)置。
DB2_I5_FMT_USA
- 美國時間格式 使用 hh:mmxx,其中 xx 是 AM 或 PM。
DB2_I5_FMT_EUR
- 歐洲時間格式 hh.mm.ss 被使用。
DB2_I5_FMT_JIS
- 日本工業(yè)標準 使用時間格式 HH:MM:SS。
DB2_I5_FMT_HMS
- 使用 hh:mm:ss 格式。
i5_time_sep
DB2_I5_SEP_COLON
- 冒號 ( : ) 用作時間 分隔符。這是默認設(shè)置。
DB2_I5_SEP_PERIOD
- 句點 ( . ) 用作時間 分隔符。
DB2_I5_SEP_COMMA
- 使用逗號 ( , ) 作為時間 分隔符。
DB2_I5_SEP_BLANK
- 空白用作時間分隔符。
DB2_I5_SEP_JOB
- 使用作業(yè)默認值。
i5_decimal_sep
DB2_I5_SEP_PERIOD
- 句點 ( . ) 用作 小數(shù)點分隔符。這是默認設(shè)置。
DB2_I5_SEP_COMMA
- 逗號 ( , ) 用作 小數(shù)分隔符。
DB2_I5_SEP_JOB
- 使用作業(yè)默認值。
以下新的 i5/OS 選項在 ibm_db2 版本 1.8.0 中可用 和以后。
i5_libl
一個字符值,該值指示將用于 解析不合格的文件引用。指定庫列表 用空格分隔的元素 'i5_libl'=>“MYLIB YOURLIB ANYLIB”。
注意:
i5_libl調(diào)用 qsys2/qcmdexc('cmd',cmdlen),它僅可用 在 i5/OS V5R4 及更高版本中。
如果連接嘗試為 成功的。db2_pconnect() 嘗試重用現(xiàn)有的 與 、 和 參數(shù)完全匹配的連接資源。如果連接嘗試失敗,db2_pconnect() 將返回 false。databaseusernamepassword
版本 | 說明 |
---|---|
ibm_db2 1.9.0 | 持久連接中的活動事務(wù)將被回滾 在每個請求的末尾。 |
ibm_db2 1.8.0 | 該選項可用于 i5/OS 用戶。i5_libl |
ibm_db2 1.7.0 | 該選項可用。trustedcontext |
ibm_db2 1.5.1 | 、 和 選項可用于 i5/OS 用戶。i5_lib i5_naming i5_commit i5_query_optimize i5_dbcs_alloc i5_date_fmt i5_date_sep i5_time_fmt i5_time_sep i5_decimal_sep |
示例 #1 A db2_pconnect() example
在以下示例中,對 db2_pconnect() 的第一次調(diào)用將返回一個新的持久連接 資源。對 db2_pconnect() 的第二次調(diào)用返回 一個持久性連接資源,它只是重用第一個持久性連接資源 連接資源。
<?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.";
}
?>
以上示例會輸出:
Persistent connection succeeded. Second persistent connection succeeded.
示例 #2 使用可信上下文
以下示例演示如何啟用受信任的上下文、開關(guān) users,并獲取當前用戶 ID。
<?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";
}
?>
以上示例會輸出:
Explicit trusted connection succeeded. User has been switched.
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: