Возвращает параметры базы данных CUBRID

# cubrid_get_db_parameter

(PECL CUBRID >= 8.3.0)

cubrid_get_db_parameter — Возвращает параметры базы данных CUBRID

### Описание

function 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

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

- cubrid_set_db_parameter() - Устанавливает параметры базы данных CUBRID
- cubrid_get_autocommit() - Возвращает настройку авто-коммита для соединения

`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open