(PHP 5 >= 5.1.0, PHP 7, PHP 8, PECL pdo >= 0.1.0)
PDO::__construct — Erzeugt eine PDO-Instanz, die eine Datenbankverbindung darstellt
$dsn
,$username
= null
,$password
= null
,$options
= null
Erzeugt eine PDO-Instanz, die eine Verbindung zur angegebenen Datenbank darstellt.
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:
dsn
enthält den vollständigen DSN.
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
dsn
besteht aus einem Namen
name
, der auf
pdo.dsn.
in der php.ini
abgebildet wird, das die DSN-Zeichenkette definiert.
name
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.
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.
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);
?>