PHP Conference Japan 2024

cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter返回 CUBRID 資料庫參數

說明

cubrid_get_db_parameter(資源 $conn_identifier): 陣列

此函式返回 CUBRID 資料庫參數,如果失敗則返回 false。它返回一個關聯式陣列,其中包含以下參數的值

  • PARAM_ISOLATION_LEVEL
  • PARAM_LOCK_TIMEOUT
  • PARAM_MAX_STRING_LENGTH
  • PARAM_AUTO_COMMIT

資料庫參數
參數 說明
PARAM_ISOLATION_LEVEL 交易隔離等級。
LOCK_TIMEOUT CUBRID 提供了鎖定逾時功能,可設定鎖定的等待時間(以秒為單位),直到允許交易鎖定設定為止。 lock_timeout_in_secs 參數的預設值為 -1,這表示應用程式用戶端將無限期等待,直到允許交易鎖定為止。
PARAM_AUTO_COMMIT 在 CUBRID PHP 中,為了交易管理,預設會停用自動提交模式。可以使用 cubrid_set_autocommit() 函式來設定。

下表顯示了從 1 到 6 的隔離級別。它包含表格結構描述(列)和隔離級別。

CUBRID 支援的隔離級別
名稱 說明
SERIALIZABLE (6)(可序列化) 在此隔離級別中,不會發生關於並行處理的問題(例如髒讀、不可重複讀、幻讀等)。
REPEATABLE READ CLASS with REPEATABLE READ INSTANCES (5)(可重複讀取類別搭配可重複讀取實例) 當交易 T1 正在檢視表格 A 時,另一個交易 T2 無法更新表格 A 的結構描述。當交易 T1 重複擷取特定記錄時,可能會遇到由另一個交易 T2 插入的記錄 R 的幻讀。
REPEATABLE READ CLASS with READ COMMITTED INSTANCES (or CURSOR STABILITY) (4)(可重複讀取類別搭配已提交讀取實例(或游標穩定性)) 當交易 T1 正在檢視表格 A 時,另一個交易 T2 無法更新表格 A 的結構描述。當交易 T1 重複擷取記錄 R 時,可能會遇到由另一個交易 T2 更新並提交的 R 讀取(不可重複讀取)。
REPEATABLE READ CLASS with READ UNCOMMITTED INSTANCES (3)(可重複讀取類別搭配未提交讀取實例) 預設隔離級別。當交易 T1 正在檢視表格 A 時,另一個交易 T2 無法更新表格 A 的結構描述。交易 T1 可能會遇到由另一個交易 T2 更新但未提交的記錄 R' 讀取(髒讀)。
READ COMMITTED CLASS with READ COMMITTED INSTANCES (2)(已提交讀取類別搭配已提交讀取實例) 當交易 T1 重複檢視表格 A 時,可能會遇到由另一個交易 T2 更新並提交的表格 A' 讀取(不可重複讀取)。當交易 T1 重複擷取記錄 R 時,可能會遇到由另一個交易 T2 更新並提交的記錄 R' 讀取(不可重複讀取)。
READ COMMITTED CLASS with READ UNCOMMITTED INSTANCES (1)(已提交讀取類別搭配未提交讀取實例) 當交易 T1 重複檢視表格 A 時,可能會遇到由另一個交易 T2 更新並提交的表格 A' 讀取(不可重複讀取)。交易 T1 可能會遇到由另一個交易 T2 更新但未提交的記錄 R' 讀取(髒讀)。

參數

conn_identifier(連線識別碼)

CUBRID 連線。如果未指定連線識別碼,則會採用 cubrid_connect() 開啟的最後一個連結。

傳回值

一個包含 CUBRID 資料庫參數的關聯陣列;成功時傳回此陣列,失敗時則傳回 false

更新日誌

版本 說明
8.4.0 在結果中,將 LOCK_TIMEOUT 變更為 PARAM_LOCK_TIMEOUT,MAX_STRING_LENGTH 變更為 PARAM_MAX_STRING_LENGTH。

範例

範例 #1 cubrid_get_db_parameter() 範例

<?php
printf
("%-30s %s\n", "CUBRID PHP 版本:", cubrid_version());

printf("\n");

$conn = cubrid_connect("localhost", 33088, "demodb");

if (!
$conn) {
die(
'連線錯誤 ('. cubrid_error_code() .')' . cubrid_error_msg());
}

$db_params = cubrid_get_db_parameter($conn);

while (list(
$param_name, $param_value) = each($db_params)) {
printf("%-30s %s\n", $param_name, $param_value);
}

printf("\n");

$server_info = cubrid_get_server_info($conn);
$client_info = cubrid_get_client_info();

printf("%-30s %s\n", "伺服器資訊:", $server_info);
printf("%-30s %s\n", "客戶端資訊:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "CUBRID 字元集:", $charset);

cubrid_disconnect($conn);

?>

以上範例將輸出

CUBRID PHP Version:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Server Info:                   9.1.0.0212
Client Info:                   9.1.0

CUBRID Charset:                iso8859-1

另請參閱

新增筆記

使用者貢獻的筆記

此頁面沒有使用者貢獻的筆記。
To Top