Signatur
Beschreibung
db2_connect() öffnet eine neue Datenbankverbindung zu einer IBM DB2-, Cloudscape- oder Apache Derby-Datenbank. Im Gegensatz zu db2_pconnect() wird bei jedem Aufruf eine neue, nicht-persistente Verbindung erzeugt, die am Ende des Skripts automatisch geschlossen wird.
Der Parameter $database kann ein im ODBC-Katalog eingetragener DSN-Name sein, oder – auf UNIX/Linux-Systemen – ein vollständiger DB2-Katalog-Eintrag. Alternativ lässt sich auch ein vollständiger Connection String (DSN-Zeichenkette) direkt übergeben, z. B. DRIVER={IBM DB2 ODBC DRIVER};DATABASE=mydb;HOSTNAME=localhost;PORT=50000;PROTOCOL=TCPIP;UID=user;PWD=pass;.
Über den optionalen $options-Array können Verbindungsattribute wie DB2_AUTOCOMMIT_ON/DB2_AUTOCOMMIT_OFF, Cursor-Typen oder Isolationsstufen gesetzt werden. Dies ist besonders nützlich, wenn Transaktionssteuerung oder spezielle Treiber-Optionen benötigt werden.
Die Funktion gibt bei Erfolg eine Verbindungsressource zurück, die an alle weiteren db2_*-Funktionen übergeben werden kann. Im Fehlerfall wird false zurückgeliefert; Fehlerdetails sind dann über db2_conn_error() und db2_conn_errormsg() abrufbar.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $database Pflicht | string | DSN-Name aus dem ODBC-Katalog, vollständiger DB2-Katalog-Alias oder kompletter DSN-Connection-String zur Identifikation der Zieldatenbank. | |
| $username Pflicht | string | Benutzername für die Datenbankverbindung. Bei Verwendung eines vollständigen DSN-Connection-Strings kann ein leerer String übergeben werden. | |
| $password Pflicht | string | Passwort des Datenbankbenutzers. Bei Verwendung eines vollständigen DSN-Connection-Strings kann ein leerer String übergeben werden. | |
| $options | array | [] | Assoziatives Array mit Verbindungsoptionen, z. B. ['autocommit' => DB2_AUTOCOMMIT_OFF] oder Cursor-Einstellungen. Schlüssel sind vordefinierte DB2-Konstanten. |
Rückgabewert
db2_*-Funktionen übergeben wird. Bei einem Fehler wird false zurückgegeben; Details sind über db2_conn_error() und db2_conn_errormsg() abrufbar.Beispiele
Einfache Verbindung über Katalog-DSN
<?php
$database = 'SAMPLE'; // im DB2-Katalog registrierter Datenbankname
$user = 'db2admin';
$password = 'geheimesPasswort';
$conn = db2_connect($database, $user, $password);
if ($conn) {
echo "Verbindung erfolgreich hergestellt.\n";
// Datenbankabfragen durchführen ...
db2_close($conn);
} else {
echo "Verbindungsfehler: " . db2_conn_errormsg();
}
Verbindung per DSN-String mit deaktiviertem Autocommit
<?php
$dsn = 'DRIVER={IBM DB2 ODBC DRIVER};'
. 'DATABASE=SAMPLE;'
. 'HOSTNAME=db2.example.com;'
. 'PORT=50000;'
. 'PROTOCOL=TCPIP;';
$options = [
'autocommit' => DB2_AUTOCOMMIT_OFF,
];
$conn = db2_connect($dsn, 'db2admin', 'geheimesPasswort', $options);
if ($conn) {
// Transaktion starten
$stmt = db2_exec($conn, "UPDATE orders SET status = 'shipped' WHERE id = 42");
if ($stmt) {
db2_commit($conn);
echo "Transaktion erfolgreich committet.\n";
} else {
db2_rollback($conn);
echo "Fehler: " . db2_stmt_errormsg();
}
db2_close($conn);
} else {
echo "Verbindungsfehler: " . db2_conn_errormsg();
}
// Wichtig · Fallstricke
Sicherheitshinweis: Zugangsdaten (Benutzername und Passwort) sollten niemals hartcodiert im Quellcode stehen. Verwende stattdessen Umgebungsvariablen oder gesicherte Konfigurationsdateien außerhalb des Web-Roots.
Erweiterung: db2_connect() setzt die installierte ibm_db2-PHP-Erweiterung voraus. Diese ist standardmäßig nicht in PHP enthalten und muss separat installiert sowie in der php.ini aktiviert werden (extension=ibm_db2).
Persistente Verbindungen: Für langlebige Skripte oder Webserver-Umgebungen mit vielen Anfragen empfiehlt sich db2_pconnect(), das Verbindungen im Pool hält und wiederverwenden kann, was den Verbindungsaufwand deutlich reduziert.
Ressourcen-Management: Nicht mehr benötigte Verbindungen sollten explizit mit db2_close() geschlossen werden, auch wenn PHP sie am Skript-Ende automatisch schließt — besonders wichtig in langlebigen Prozessen.