• 首页
  • vue
  • TypeScript
  • JavaScript
  • scss
  • css3
  • html5
  • php
  • MySQL
  • redis
  • jQuery
  • pg_connection_status()

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

    获得连接状态

    说明

    pg_connection_status(resource $connection): int

    pg_connection_status()返回一个连接的状态。可能的状态为PGSQL_CONNECTION_OKPGSQL_CONNECTION_BAD

    Example #1 pg_connection_status()例子

    <?php
        $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
        $stat = pg_connection_status($dbconn);
        echo 'connection_status: '.$stat;
    ?>
    

    Example #2 pg_connection_status()例子

    <?php
        $dbconn = pg_connect("dbname=publisher") or die("Could not connect");
        $stat = pg_connection_status($dbconn);
        echo 'connection_status: '.$stat;
    ?>
    

    参见pg_connection_busy()。

    Being careful with the comparison operators is not enough:
    <?php
    if (pg_connection_status($link)===PGSQL_CONNECTION_BAD)
      reconnect($link);
    ?>
     
    The reconnect won't be trigged when $link is null.
    The manual is just wrong, there are three return values: PGSQL_CONNECTION_OK, PGSQL_CONNECTION_BAD, null
    If the connection variable is NULL this function returns 0 in PHP 5.0.2. Havent figured out any more erratic values for the connection variable but be careful.
    The wiki page doesn't currently reflect that, but if you're passing PGSQL_CONNECT_ASYNC to pg_connect, creating the connection won't block and transitions through extra states expressed by those constants.
    PGSQL_CONNECTION_AUTH_OK
    PGSQL_CONNECTION_AWAITING_RESPONSE
    PGSQL_CONNECTION_MADE
    PGSQL_CONNECTION_SETENV
    PGSQL_CONNECTION_SSL_STARTUP
    PGSQL_CONNECTION_STARTED
    I think zytox is incorrect, at least in PHP 5.0.4.
    It returns null, but you have to be careful with your comparison operators.
    As an example:
    <?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';
    ?>