Open a PostgreSQL connection

- « pg_connect_poll

- pg_connection_busy »

- PHP Manual
- PostgreSQL Functions
- Open a PostgreSQL connection

# pg_connect

(PHP 4, PHP 5, PHP 7, PHP 8)

pg_connect — Open a PostgreSQL connection

### Description

pg_connect(string `$connection_string`, int `$flags` = 0): PgSql\Connection|false

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.

### 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().

### Return Values

Returns an PgSql\Connection instance on success, or `false` on failure.

### Changelog

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

### Examples

Example #1 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?>

### See Also

- pg_pconnect() - Open a persistent PostgreSQL connection
- pg_close() - Closes a PostgreSQL connection
- pg_host() - Returns the host name associated with the connection
- pg_port() - Return the port number associated with the connection
- pg_tty() - Return the TTY name associated with the connection
- pg_options() - Get the options associated with the connection
- pg_dbname() - Get the database name