PHP8 cubrid_get_db_parameter

2024-03-27 10:22 更新

(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_TIMEOUTCUBRID提供锁定超时功能,用于设置等待 锁定的时间(以秒为单位),直到事务锁定设置为 允许。lock_timeout_in_secs参数的默认值为 -1,这意味着应用程序客户端将无限期地等待,直到 允许交易锁定。
PARAM_AUTO_COMMIT在 CUBRID PHP 中,自动提交模式默认为 事务管理。可以使用 cubrid_set_autocommit() 进行设置。

下表显示了从 1 到 6 的隔离级别。它包括 表架构(行)和隔离级别:

CUBRID支持的隔离级别
名字描述
可序列化 (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() - 获取连接的自动提交模式


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号