PHP Conference Japan 2024

pg_connection_status

(PHP 4 >= 4.2.0, PHP 5, PHP 7, PHP 8)

pg_connection_status 获取连接状态

描述

pg_connection_status(PgSql\Connection $connection): int

pg_connection_status() 返回指定 connection 的状态。

参数

connection

一个 PgSql\Connection 实例。

变更日志

版本 描述
8.1.0 现在 connection 参数期望一个 PgSql\Connection 实例;以前,期望一个 资源

示例

示例 #1 pg_connection_status() 示例

<?php
$dbconn
= pg_connect("dbname=publisher") or die("Could not connect");
$stat = pg_connection_status($dbconn);
if (
$stat === PGSQL_CONNECTION_OK) {
echo
'Connection status ok';
} else {
echo
'Connection status bad';
}
?>

参见

添加注释

用户贡献的注释 4 条注释

Mathieu De Zutter
18 年前
小心使用比较运算符是不够的

<?php
if (pg_connection_status($link)===PGSQL_CONNECTION_BAD)
reconnect($link);
?>

当 $link 为 null 时,不会触发重新连接。

手册是错误的,有三个返回值:PGSQL_CONNECTION_OK、PGSQL_CONNECTION_BAD、null
zytox at hotmail dot com
19 年前
如果连接变量为 NULL,则此函数在 PHP 5.0.2 中返回 0。尚未确定连接变量的任何其他不稳定值,但请小心。
david dot tulloh at infaze dot com dot au
19 年前
我认为 zytox 是错误的,至少在 PHP 5.0.4 中是这样。
它返回 null,但您必须小心使用比较运算符。

例如
<?php
unset($null);
if (
pg_connection_status($null)===PGSQL_CONNECTION_OK)
echo
'this is not called';
if (
pg_connection_status($null)==PGSQL_CONNECTION_OK)
echo
'this is called because NULL==0 is true';
?>
匿名用户
6 年前
Wiki 页面目前没有反映这一点,但是如果您将 PGSQL_CONNECT_ASYNC 传递给 pg_connect,则创建连接不会阻塞,并且会通过这些常量表示的额外状态进行转换。

PGSQL_CONNECTION_AUTH_OK
PGSQL_CONNECTION_AWAITING_RESPONSE
PGSQL_CONNECTION_MADE
PGSQL_CONNECTION_SETENV
PGSQL_CONNECTION_SSL_STARTUP
PGSQL_CONNECTION_STARTED
To Top