CakeFest 2024: The Official CakePHP Conference

cubrid_pconnect_with_url

(PECL CUBRID >= 8.3.1)

cubrid_pconnect_with_urlОткрывает постоянное соединение с сервером CUBRID

Описание

cubrid_pconnect_with_url(string $conn_url, string $userid = ?, string $passwd = ?): resource

Устанавливает постоянное соединение с сервером CUBRID.

cubrid_pconnect_with_url() действует очень похоже на cubrid_connect_with_url() с двумя основными отличиями:

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

Во-вторых, соединение с SQL-сервером не будет закрыто по окончании выполнения скрипта. Вместо этого ссылка останется открытой для использования в будущем (cubrid_close() или cubrid_disconnect() не закроет ссылки, установленные cubrid_pconnect_with_url()).

Поэтому этот тип ссылки называется "постоянным".

<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_pconnect_with_url ($url, "dba", "12?");

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

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

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

conn_url

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

userid

Имя пользователя базы данных.

passwd

Пароль пользователя.

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

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

Примеры

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

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

if (
$con) {
echo
"соединение успешно выполнено";
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_pconnect_with_url() url with properties example

<?php
$conn_url
= "CUBRID:127.0.0.1:33000:demodb:dba::?althost=10.34.63.132:33088&rctime=100";
$con = cubrid_pconnect_with_url ($conn_url);

if (
$con) {
echo
"соединение успешно выполнено";
$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_connect_with_url() - Создаёт окружение для соединения с сервером CUBRID
  • cubrid_pconnect() - Открывает постоянное соединение с сервером CUBRID
  • cubrid_disconnect() - Закрывает соединение с базой данных
  • cubrid_close() - Закрывает соединение с базой данных

add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top