(PECL CUBRID >= 8.3.0)
cubrid_get_db_parameter — 返回 CUBRID 資料庫參數
此函式返回 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 的隔離級別。它包含表格結構描述(列)和隔離級別。
名稱 | 說明 |
---|---|
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' 讀取(髒讀)。 |
一個包含 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