PHP Conference Nagoya 2025

cubrid_connect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_connect_with_urlСоздаёт окружение для соединения с сервером CUBRID

Описание

cubrid_connect_with_url(
    string $conn_url,
    string $userid = ?,
    string $passwd = ?,
    bool $new_link = false
): resource

Функция cubrid_connect_with_url() используется для создания окружения для соединения с сервером посредством информации заданной в виде строки URL. Если в CUBRID разрешена функциональность высокой доступности, необходимо задать информация для соединения с резервным сервером, которая будет использоваться для соединения, если с основным что-то случится. Если логин и пароль не заданы, то по умолчанию будет использоваться соединение "PUBLIC".

<url> ::= CUBRID:<host>:<db_name>:<db_user>:<db_password>:[?<properties>]

<properties> ::= <property> [&<property>]

<properties> ::= alhosts=<alternative_hosts>[ &rctime=<time>]

<properties> ::= login_timeout=<milli_sec>

<properties> ::= query_timeout=<milli_sec>

<properties> ::= disconnect_on_query_timeout=true|false

<alternative_hosts> ::= <standby_broker1_host>:<port> [,<standby_broker2_host>:<port>]

<host> := HOSTNAME | IP_ADDR

<time> := SECOND

<milli_sec> := MILLI SECOND

  • host : Имя хоста или IP-адрес основного сервера
  • db_name : имя базы данных
  • db_user : Имя пользователя
  • db_password : пароль
  • alhosts : Задаёт информацию о брокере резервного сервера, который будет использоваться в случае недоступности основного. Если вы зададите несколько резервных брокеров, то попытки соединения будут происходить в том же порядке, как они описаны в URL.
  • rctime : Интервал между попытками подключения к активному брокеру, в котором произошёл сбой. После возникновения ошибки, система соединится с резервным брокером, указанным в althosts (failover), откатит незавершённые транзакции, и затем попытается соединиться с активным брокером основного узла через каждые rctime. Значение по умолчанию 600 секунд.
  • login_timeout : Максимальное время (миллисекунды) ожидания авторизации. По умолчанию 0, что обозначает бесконечное время ожидания.
  • query_timeout : Максимальное время (миллисекунды) ожидания выполнения запроса. По исчерпании этого времени на сервер будет отослано сообщение о прекращении запроса. Возвращённое значение запроса будет зависеть от настройки disconnect_on_query_timeout; даже если будет послано сообщение о прекращении запроса, он всё ещё может завершиться удачно.
  • disconnect_on_query_timeout : Определяет, будет ли сразу после превышения времени ожидания запроса возвращена ошибка. По умолчанию false.

Замечание:

Символы ? и : являются специальными в URL соединения и не могут быть использованы в пароле. Пример некорректного пароля, который нельзя использовать в строке соединения, потому, что в нем используются символы "?:".

$url = "CUBRID:localhost:33000:tdb:dba:12?:?login_timeout=100";

Пароли, содержащие ? или : могут быть посланы отдельно.

$url = "CUBRID:localhost:33000:tbd:::?login_timeout=100";

$conn = cubrid_connect_with_url($url, "dba", "12?");

Если логин или пароль пусты, необходимо всё равно сохранять символы ":":

$url = "CUBRID:localhost:33000:demodb:::";

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

conn_url

Строка, содержащая информацию для соединения.

userid

Имя пользователя.

passwd

пароль.

new_link

Если функция cubrid_connect_with_url() была вызвана повторно с такими же аргументами, новое соединение не будет создано, вместо него будет возвращён идентификатор уже существующего подключения. Параметр new_link меняет такое поведение и вынуждает cubrid_connect_with_url() в любом случае создать новое соединение, даже если функция cubrid_connect_with_url() ранее была вызвана с такими же аргументами.

Возвращаемые значения

Идентификатор подключения в случае успешного выполнения или false, если возникла ошибка.

Примеры

Пример #1 Пример использования cubrid_connect_with_url() без задания свойств

<?php
$conn_url
= "CUBRID:localhost:33000:demodb:dba::";
$con = cubrid_connect_with_url($conn_url);

if (
$con) {
echo
"connected successfully";
cubrid_execute($con, "create table person(id int,name char(16))");
$req =cubrid_execute($con, "insert into person values(1,'James')");

if (
$req) {
cubrid_close_request($req);
cubrid_commit($con);
} else {
cubrid_rollback($con);
}
cubrid_disconnect($con);
}
?>

Пример #2 Пример использования cubrid_connect_with_url() с заданием свойств

<?php
$conn_url
= "CUBRID:127.0.0.1:33000:demodb:dba::?login_timeout=100";
$con = cubrid_connect_with_url ($conn_url);

if (
$con) {
echo
"connected successfully";
cubrid_execute($con, "create table person(id int,name char(16))");
$req =cubrid_execute($con, "insert into person values(1,'James')");

if (
$req) {
cubrid_close_request($req);
cubrid_commit($con);
} else {
cubrid_rollback($con);
}
cubrid_disconnect($con);
}
?>

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

  • cubrid_connect() - Открывает соединение к серверу CUBRID
  • cubrid_pconnect() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_pconnect_with_url() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных

Добавить

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

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