PDO::__construct

Creates a PDO instance representing a connection to a database

&reftitle.description; public `PDO::__construct` `string` `dsn` ``string``null```username`&null; ``string``null```password`&null; ``array``null```options`&null;

Creates a PDO instance to represent a connection to the requested database.

&reftitle.parameters;

`dsn`

- The Data Source Name, or DSN, contains the information required to connect to the database.

  In general, a DSN consists of the PDO driver name, followed by a colon, followed by the PDO driver-specific connection syntax. Further information is available from the PDO driver-specific documentation.

  The `dsn` parameter supports three different methods of specifying the arguments required to create a database connection:

  Driver invocation

- `dsn` contains the full DSN.

URI invocation

- `dsn` consists of `uri:` followed by a URI that defines the location of a file containing the DSN string. The URI can specify a local file or a remote URL.

  `uri:file:///path/to/dsnfile`

Aliasing

- `dsn` consists of a name `name` that maps to `pdo.dsn.`name`` in &php.ini; defining the DSN string.

  The alias must be defined in &php.ini;, and not &htaccess; or &httpd.conf;

`username`

- The user name for the DSN string. This parameter is optional for some PDO drivers.

`password`

- The password for the DSN string. This parameter is optional for some PDO drivers.

`options`

- A key=>value array of driver-specific connection options.

&reftitle.errors;

`PDO::__construct` throws a `PDOException` if the attempt to connect to the requested database fails, regardless of which `PDO::ATTR_ERRMODE` is currently set.

&reftitle.examples;

### Create a PDO instance via driver invocation

    <?php
    /* Connect to a MySQL database using driver invocation */
    $dsn = 'mysql:dbname=testdb;host=127.0.0.1';
    $user = 'dbuser';
    $password = 'dbpass';

    $dbh = new PDO($dsn, $user, $password);

    ?>

### Create a PDO instance via URI invocation

The following example assumes that the file `/usr/local/dbconnect` exists with file permissions that enable PHP to read the file. The file contains the PDO DSN to connect to a DB2 database through the PDO_ODBC driver:

    odbc:DSN=SAMPLE;UID=john;PWD=mypass

The PHP script can then create a database connection by simply passing the `uri:` parameter and pointing to the file URI:

    <?php
    /* Connect to an ODBC database using driver invocation */
    $dsn = 'uri:file:///usr/local/dbconnect';
    $user = '';
    $password = '';

    $dbh = new PDO($dsn, $user, $password);

    ?>

### Create a PDO instance using an alias

The following example assumes that &php.ini; contains the following entry to enable a connection to a MySQL database using only the alias `mydb`:

    [PDO]
    pdo.dsn.mydb="mysql:dbname=testdb;host=localhost"

    <?php
    /* Connect to an ODBC database using an alias */
    $dsn = 'mydb';
    $user = '';
    $password = '';

    $dbh = new PDO($dsn, $user, $password);

    ?>