# PDO::__construct

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

PDO::__construct — Erzeugt eine PDO-Instanz, die eine Datenbankverbindung darstellt

### Beschreibung

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

Erzeugt eine PDO-Instanz, die eine Verbindung zur angegebenen Datenbank darstellt.

### Parameter-Liste

`dsn`

  Der Name der Datenquelle (Data Source Name oder DSN) enthält die Informationen, die für die Verbindung mit der Datenbank erforderlich sind.

  Im Allgemeinen besteht ein DSN aus dem Namen des PDO-Treibers, gefolgt von einem Doppelpunkt, gefolgt von der treiberspezifischen PDO-Verbindungssyntax. Weitere Informationen sind in der Dokumentation des betreffenden PDO-Treibers zu finden.

  Der Parameter `dsn` unterstützt drei verschiedene Methoden, die für eine Datenbankverbindung benötigten Argumente anzugeben:

  Aufrufen eines Treibers

    `dsn` enthält den vollständigen DSN.

  Aufrufen eines URIs

    `dsn` besteht aus `uri:`, gefolgt von einem URI, der den Ort der Datei mit der DSN-Zeichenkette definiert. Der URI kann eine lokale Datei oder eine entfernte URL angeben.

    `uri:file:///pfad/zur/dsndatei`

  Über einen Alias

    `dsn` besteht aus einem Namen `name`, der auf `pdo.dsn.`name`` in der php.ini abgebildet wird, das die DSN-Zeichenkette definiert.

    > Hinweis:

    > Der Alias muss in der php.ini definiert werden, nicht in der .htaccess oder der httpd.conf

`username`

  Der Benutzername für die DSN-Zeichenkette. Dieser Parameter ist bei einigen PDO-Treibern optional.

`password`

  Das Passwort für die DSN-Zeichenkette. Dieser Parameter ist bei einigen PDO-Treibern optional.

`options`

  Ein Schlüssel=>Wert-Array mit treiberspezifischen Verbindungsoptionen.

### Fehler/Exceptions

Wenn der Versuch, sich mit der angeforderten Datenbank zu verbinden, fehlschlägt, wird eine PDOException ausgelöst, unabhängig davon, welchen Wert `PDO::ATTR_ERRMODE` aktuell hat.

### Beispiele

Beispiel #1 Erstellen einer PDO-Instanz über den Aufruf eines Treibers

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

Beispiel #2 Erstellen einer PDO-Instanz über den Aufruf eines URIs

Im folgenden Beispiel wird davon ausgegangen, dass die Datei /usr/local/dbconnect existiert und entsprechende Zugriffsrechte hat, sodass sie von PHP gelesen werden kann. Sie enthält den PDO-DSN für die Verbindung zu einer DB2-Datenbank über den PDO_ODBC-Treiber:

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

Das PHP-Skript kann dann eine Verbindung zur Datenbank aufbauen, indem es einfach den Parameter `uri:` übergibt und auf die URI-Datei verweist:

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

Beispiel #3 Erstellen einer PDO-Instanz über einen Alias

Im folgenden Beispiel wird davon ausgegangen, dass die php.ini den folgenden Eintrag enthält, um mit nur dem Alias `mydb` eine Verbindung zu einer MySQL-Datenbank herzustellen:

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

`<?php
$dsn = 'mydb';
$user = '';
$password = '';
$dbh = new PDO($dsn, $user, $password);
?>`
`↑` and `↓` to navigate • `Enter` to select • `Esc` to close • `/` to open