PHP Conference Nagoya 2025

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. Она состоит из схемы (строки) таблицы и уровня изоляции:

Уровни изоляции, поддерживаемые CUBRID
Имя Описание
SERIALIZABLE (6) На этом уровне изоляции проблем, связанных с параллелизмом (например, грязное чтение, неповторяющееся чтение, фантомное чтение и т.д.) не возникает.
REPEATABLE READ CLASS с REPEATABLE READ INSTANCES (5) Другая транзакция T2 не может обновить схему таблицы A, пока транзакция T1 просматривает таблицу A. Транзакция T1 может испытывать фантомное чтение для записи R, которая была вставлена другой транзакцией T2, когда она повторно получает определённую запись.
REPEATABLE READ CLASS с READ COMMITTED INSTANCES (или CURSOR STABILITY) (4) Другая транзакция T2 не может обновить схему таблицы A, пока транзакция T1 просматривает таблицу A. Транзакция T1 может испытывать чтение R (неповторяющееся чтение), которое было обновлено и зафиксировано другой транзакцией T2, когда она повторно получает запись R.
REPEATABLE READ CLASS с READ UNCOMMITTED INSTANCES (3) Уровень изоляции по умолчанию. Другая транзакция T2 не может обновить схему таблицы A, пока транзакция T1 просматривает таблицу A. В транзакции T1 может произойти чтение R (грязное чтение) для записи, которая была обновлена, но не зафиксирована другой транзакцией T2.
READ COMMITTED CLASS с READ COMMITTED INSTANCES (2) Транзакция T1 может испытывать чтение A' (неповторяющееся чтение) для таблицы, которая была обновлена и зафиксирована другой транзакцией T2, пока она просматривает таблицу A несколько раз. Транзакция T1 может испытывать чтение R' (неповторяющееся чтение) для записи, которая была обновлена и зафиксирована другой транзакцией T2, пока она повторно извлекает запись R.
READ COMMITTED CLASS с READ UNCOMMITTED INSTANCES (1) Транзакция T1 может испытывать чтение A' (неповторяющееся чтение) для таблицы, которая была обновлена и зафиксирована другой транзакцией T2, в то время как она многократно просматривает таблицу A. Транзакция T1 может испытывать чтение R' (грязное чтение) для записи, которая была обновлена, но не зафиксирована другой транзакцией T2.

Список параметров

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(
'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);
printf("%-30s %s\n", "Информация о клиенте:", $client_info);

printf("\n");

$charset = cubrid_get_charset($conn);

printf("%-30s %s\n", "Кодировка CUBRID:", $charset);

cubrid_disconnect($conn);

?>

Результат выполнения приведённого примера:

Версия CUBRID PHP:            9.1.0.0001

PARAM_ISOLATION_LEVEL          3
LOCK_TIMEOUT                   -1
MAX_STRING_LENGTH              1073741823
PARAM_AUTO_COMMIT              1

Информация о сервере:             9.1.0.0212
Информация о клиенте:             9.1.0

Кодировка CUBRID:                iso8859-1

Смотрите также

Добавить

Примечания пользователей

Пользователи ещё не добавляли примечания для страницы
To Top