# PostgreSQL Functions (PDO_PGSQL)

&reftitle.intro;

PDO_PGSQL is a driver that implements the PHP Data Objects (PDO) interface to enable access from PHP to PostgreSQL databases.

&reftitle.resources;

This extension defines a stream resource returned by `PDO::pgsqlLOBOpen`.

&reference.pdo-pgsql.configure; &reference.pdo-pgsql.constants;

## General notes

`bytea` fields are returned as streams.

PDO_PGSQL DSN

Connecting to PostgreSQL databases

&reftitle.description;

The PDO_PGSQL Data Source Name (DSN) is composed of the following elements, delimited by spaces or semicolons:

DSN prefix

- The DSN prefix is `pgsql:`.

`host`

- The hostname on which the database server resides.

`port`

- The port on which the database server is running.

`dbname`

- The name of the database.

`user`

- The name of the user for the connection. If you specify the user name in the DSN, PDO ignores the value of the user name argument in the PDO constructor.

`password`

- The password of the user for the connection. If you specify the password in the DSN, PDO ignores the value of the password argument in the PDO constructor.

`sslmode`

- The SSL mode. Supported values and their meaning are listed in the PostgreSQL Documentation.

All semicolons in the DSN string are replaced by spaces, because PostgreSQL expects this format. This implies that semicolons in any of the components (e.g. `password` or `dbname`) are not supported.

&reftitle.examples;

#### PDO_PGSQL DSN examples

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database:

    pgsql:host=localhost;port=5432;dbname=testdb;user=bruce;password=mypass

The following example shows a PDO_PGSQL DSN for connecting to a PostgreSQL database via unix socket `/tmp/.s.PGSQL.5432`:

    pgsql:host=/tmp;port=5432;dbname=testdb;user=bruce;password=mypass

&reference.pdo-pgsql.entities.PDO;