# PDO::__construct

(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)

PDO::__construct — Crée une instance PDO qui représente une connexion à la base

### Description

public PDO::__construct(
string `$dsn`,
?string `$username` = `null`,
#[\SensitiveParameter] ?string `$password` = `null`,
?array `$options` = `null`
)

Crée un objet PDO qui représente une connexion à la base.

### Liste de paramètres

`dsn`

  Le `Data Source Name`, ou DSN, qui contient les informations requises pour se connecter à la base.

  En général, un DSN est constitué du nom du pilote PDO, suivi d'une syntaxe spécifique au pilote. Plus de détails sont disponibles dans la documentation PDO de chaque pilote.

  Le paramètre `dsn` supporte trois méthodes différentes pour spécifier les arguments nécessaires à la création de la base de données :

  Appel pilote

    `dsn` contient le DSN complet.

  Appel URI

    `dsn` est constitué de `uri:` suivi par une URI qui définit la localisation du fichier contenant la chaîne de DSN. L'URI peut spécifier un fichier local ou distant.

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

  Aliasing

    `dsn` est constitué d'un nom `name` qui correspond à `pdo.dsn.`name`` dans le fichier php.ini, et qui définit la chaîne DSN.

    > Note:

    > L'alias doit être défini dans le fichier php.ini, et non pas dans un fichier .htaccess ou httpd.conf

`username`

  Le nom d'utilisateur pour la chaîne DSN. Ce paramètre est optionnel pour certains pilote PDO.

`password`

  Le mot de passe de la chaîne DSN. Ce paramètre est optionnel pour certains pilote PDO.

`options`

  Un tableau clé=>valeur avec les options spécifiques de connexion.

### Erreurs / Exceptions

Une exception PDOException est levée si la tentative de connexion à la base de données demandée échoue, indépendamment du `PDO::ATTR_ERRMODE` actuellement défini.

### Exemples

Exemple #1 Crée une instance PDO via une invocation de pilote

`<?php
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
$dbh = new PDO($dsn, $user, $password);
?>`

Exemple #2 Crée une instance PDO via une invocation URI

L'exemple ci-dessous suppose que le fichier /usr/local/dbconnect existe avec des droits d'accès qui permettent à PHP d'y accéder. Le fichier contient alors le DSN de PDO, pour se connecter à une base de données DB2, avec le pilote PDO_ODBC :

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

Le script PHP peut alors créer une connexion de base de données, en passant dans l'URL le paramètre `uri:` et en pointant sur l'URI du fichier :

`<?php
$dsn = 'uri:file:///usr/local/dbconnect';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>`

Exemple #3 Crée une instance PDO avec un alias

L'exemple ci-dessous suppose que le fichier php.ini contient la directive suivant pour activer une connexion à un serveur MySQL, avec l'alias `mydb`:

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

`<?php
$dsn = 'mydb';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>`