pg_pconnect

Open a persistent PostgreSQL connection

&reftitle.description; ``PgSql\Connection``false```pg_pconnect` `string` `connection_string` `int` `flags` 0

`pg_pconnect` opens a connection to a PostgreSQL database. It returns an `PgSql\Connection` instance that is needed by other PostgreSQL functions.

If a second call is made to `pg_pconnect` with the same `connection_string` as an existing connection, the existing connection will be returned unless you pass `PGSQL_CONNECT_FORCE_NEW` as `flags`.

To enable persistent connection, the pgsql.allow_persistent &php.ini; directive must be set to "On" (which is the default). The maximum number of persistent connection can be defined with the pgsql.max_persistent &php.ini; directive (defaults to -1 for no limit). The total number of connections can be set with the pgsql.max_links &php.ini; directive.

`pg_close` will not close persistent links generated by `pg_pconnect`.

&reftitle.parameters;

`connection_string`

- The `connection_string` can be empty to use all default parameters, or it can contain one or more parameter settings separated by whitespace. Each parameter setting is in the form `keyword = value`. Spaces around the equal sign are optional. To write an empty value or a value containing spaces, surround it with single quotes, e.g., `keyword = 'a value'`. Single quotes and backslashes within the value must be escaped with a backslash, i.e., \' and \\.

  The currently recognized parameter keywords are: `host`, `hostaddr`, `port`, `dbname`, `user`, `password`, `connect_timeout`, `options`, `tty` (ignored), `sslmode`, `requiressl` (deprecated in favor of `sslmode`), and `service`. Which of these arguments exist depends on your PostgreSQL version.

`flags`

- If `PGSQL_CONNECT_FORCE_NEW` is passed, then a new connection is created, even if the `connection_string` is identical to an existing connection.

&reftitle.returnvalues;

Returns an `PgSql\Connection` instance on success, &return.falseforfailure;.

&reftitle.changelog;

&Version; | &Description;
8.1.0 | Returns an `PgSql\Connection` instance now; previously, a &resource; was returned.

&reftitle.examples;

### Using `pg_pconnect`

    <?php
    $dbconn = pg_pconnect("dbname=mary");
    //connect to a database named "mary"

    $dbconn2 = pg_pconnect("host=localhost port=5432 dbname=mary");
    // connect to a database named "mary" on "localhost" at port "5432"

    $dbconn3 = pg_pconnect("host=sheep port=5432 dbname=mary user=lamb password=foo");
    //connect to a database named "mary" on the host "sheep" with a username and password

    $conn_string = "host=sheep port=5432 dbname=test user=lamb password=bar";
    $dbconn4 = pg_pconnect($conn_string);
    //connect to a database named "test" on the host "sheep" with a username and password
    ?>

&reftitle.seealso;

- `pg_connect`
- Persistent Database Connections