(PECL CUBRID >= 8.3.1)
cubrid_pconnect_with_url — Открывает постоянное соединение с сервером CUBRID
$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
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);
}
?>