PHP8 cubrid_get_db_parameter
(PECL CUBRID >= 8.3.0)
cubrid_get_db_parameter — 返回 CUBRID 数据库参数
说明
cubrid_get_db_parameter(resource $conn_identifier): array
此函数返回 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 的隔离级别。它包括 表架构(行)和隔离级别:
名字 | 描述 |
---|---|
可序列化 (6) | 在这个隔离级别中,有关并发性的问题(例如 脏读、不可重复读、幻影读等)不要 发生。 |
具有可重复读取实例的可重复读取类 (5) | 另一个事务 T2 无法更新表 A 的架构,而 事务 T1 正在查看表 A。 事务 T1 可能会遇到记录 R 的幻像读取,该记录是 由另一个事务 T2 插入,当它重复检索 特定记录。 |
具有 READ COMMITTED INSTANCES(或游标稳定性)的可重复读取类 (4) | 另一个事务 T2 无法更新表 A 的架构,而 事务 T1 正在查看表 A。 事务 T1 可能会遇到 R 读取(不可重复读取) 由另一个事务 T2 重复更新和提交 检索记录 R。 |
具有读取未提交实例的可重复读取类 (3) | 默认隔离级别。另一个事务 T2 无法更新 当事务 T1 正在查看表 A 时,表 A 的架构。 事务 T1 可能会遇到 R' 读取(脏读取)的记录 已更新,但未由另一个事务 T2 提交。 |
具有 READ COMMITTED INSTANCES 的 READ COMMITTED CLASS (2) | 事务 T1 可能会遇到 A' 读取(不可重复读取) 由另一个事务 T2 更新和提交的表 当它反复查看表 A 时。交易 T1 可能会遇到 R' read(不可重复读取)用于更新的记录和 由另一个事务 T2 在检索记录时提交 R 反复出现。 |
具有 READ UNCOMMITTED INSTANCES 的 READ COMMITTED CLASS (1) | 事务 T1 可能会遇到 A' 读取(不可重复读取) 由另一个事务 T2 更新和提交的表 当它重复查看表 A 时。 事务 T1 可能会遇到 R' read (dirty read) 表示已更新但未提交的记录 通过另一个事务 T2。 |
参数
conn_identifier
CUBRID 连接。如果未指定连接标识符, 假定 cubrid_connect() 打开的最后一个链接。
返回值
具有 CUBRID 数据库参数的关联数组;on success, 或者在失败时返回 false.
更新日志
版本 | 说明 |
---|---|
8.4.0 | 将LOCK_TIMEOUT更改为 PARAM_LOCK_TIMEOUT,将 MAX_STRING_LENGTH更改为 结果PARAM_MAX_STRING_LENGTH。 |
示例
示例 #1 cubrid_get_db_parameter() example
<?php
printf("%-30s %s\n", "CUBRID PHP Version:", cubrid_version());
printf("\n");
$conn = cubrid_connect("localhost", 33088, "demodb");
if (!$conn) {
die('Connect Error ('. 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:", $server_info);
printf("%-30s %s\n", "Client Info:", $client_info);
printf("\n");
$charset = cubrid_get_charset($conn);
printf("%-30s %s\n", "CUBRID Charset:", $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
参见
- cubrid_set_db_parameter() - 设置 CUBRID 数据库参数
- cubrid_get_autocommit() - 获取连接的自动提交模式