pg_connect

Open a PostgreSQL connection

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

`pg_connect` opens a connection to a PostgreSQL database specified by the `connection_string`.

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

The old syntax with multiple parameters `$conn = pg_connect("host", "port", "options", "tty", "dbname")` has been deprecated.

&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` (defaults to value of `user`), `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.

  The `options` parameter can be used to set command line parameters to be invoked by the server.

`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.

  If `PGSQL_CONNECT_ASYNC` is given, then the connection is established asynchronously. The state of the connection can then be checked via `pg_connect_poll` or `pg_connection_status`.

&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_connect`

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

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

    $dbconn3 = pg_connect("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_connect($conn_string);
    //connect to a database named "test" on the host "sheep" with a username and password

    $dbconn5 = pg_connect("host=localhost options='--client_encoding=UTF8'");
    //connect to a database on "localhost" and set the command line parameter which tells the encoding is in UTF-8
    ?>

&reftitle.seealso;

- `pg_pconnect`
- `pg_close`
- `pg_host`
- `pg_port`
- `pg_tty`
- `pg_options`
- `pg_dbname`