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,
    ?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, löst PDO::__construct() eine PDOException aus, unabhängig davon, welchen Wert PDO::ATTR_ERRMODE aktuell hat.

Beispiele

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

<?php
/* Aufbauen einer Verbindung zu einer MySQL-Datenbank über den Aufruf des Treibers */
$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
/* Aufbauen einer Verbindung zu einer ODBC-Datenbank mittels Aufruf des URIs */
$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
/* Aufbauen einer Verbindung zu einer ODBC-Datenbank über einen Alias */
$dsn = 'mydb';
$user = '';
$password = '';

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

?>