Signatur
Beschreibung
db2_get_option() gibt den Wert einer bestimmten Option zurück, die für eine IBM-DB2-, Cloudscape- oder Apache-Derby-Verbindungs- oder Statement-Ressource gesetzt wurde. Die Funktion ist das Gegenstück zu db2_set_option() und erlaubt es, den aktuellen Zustand von Verbindungs- oder Statement-Optionen zur Laufzeit abzufragen.
Typische Anwendungsfälle sind die Diagnose von Verbindungsproblemen, das Überprüfen gesetzter Cursor-Typen oder das Auslesen von Client-Informationen wie db2_client_info-ähnlichen Attributen (z. B. SQL_ATTR_INFO_PROGRAMNAME). Die Funktion ist besonders nützlich, wenn man sicherstellen möchte, dass eine Option tatsächlich übernommen wurde, bevor eine Datenbankoperation ausgeführt wird.
Als $resource kann sowohl eine durch db2_connect() oder db2_pconnect() erzeugte Verbindungsressource als auch eine durch db2_prepare() oder db2_exec() erzeugte Statement-Ressource übergeben werden. Der $option-Parameter muss ein gültiger, unterstützter Optionsname sein – ungültige Namen führen zur Rückgabe von false.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $resource Pflicht | resource | Eine gültige DB2-Verbindungsressource (z. B. aus db2_connect()) oder eine Statement-Ressource (z. B. aus db2_prepare()). |
|
| $option Pflicht | string | Der Name der abzufragenden Option, z. B. 'autocommit', 'cursor', 'db2_attr_case' oder 'SQL_ATTR_INFO_PROGRAMNAME'. |
Rückgabewert
string zurück. Wenn die Option unbekannt ist, die Ressource ungültig ist oder ein anderer Fehler auftritt, wird false zurückgegeben.Beispiele
Autocommit-Einstellung einer Verbindung auslesen
<?php
$conn = db2_connect('DATENBANK', 'benutzer', 'passwort');
if ($conn) {
// Autocommit-Status abfragen
$autocommit = db2_get_option($conn, 'autocommit');
if ($autocommit !== false) {
echo 'Autocommit: ' . $autocommit . PHP_EOL;
} else {
echo 'Option konnte nicht gelesen werden.' . PHP_EOL;
}
db2_close($conn);
} else {
echo 'Verbindung fehlgeschlagen: ' . db2_conn_errormsg();
}
Programmnamen einer Verbindung setzen und anschließend prüfen
<?php
$conn = db2_connect('DATENBANK', 'benutzer', 'passwort');
if ($conn) {
// Option setzen
$optionen = ['db2_attr_case' => DB2_CASE_UPPER];
db2_set_option($conn, $optionen, 1);
// Option wieder auslesen und prüfen
$wert = db2_get_option($conn, 'db2_attr_case');
if ($wert !== false) {
echo 'db2_attr_case ist gesetzt auf: ' . $wert . PHP_EOL;
} else {
echo 'Optionswert konnte nicht ermittelt werden.' . PHP_EOL;
}
db2_close($conn);
}
Cursor-Typ einer Statement-Ressource abfragen
<?php
$conn = db2_connect('DATENBANK', 'benutzer', 'passwort');
if ($conn) {
$stmt = db2_prepare($conn, 'SELECT * FROM produkte');
if ($stmt) {
$cursor = db2_get_option($stmt, 'cursor');
echo 'Cursor-Typ: ' . ($cursor !== false ? $cursor : 'unbekannt') . PHP_EOL;
}
db2_close($conn);
}
// Wichtig · Fallstricke
Verfügbarkeit: db2_get_option() ist Teil der ibm_db2-Extension, die separat installiert werden muss (pecl install ibm_db2). Ohne diese Extension steht die Funktion nicht zur Verfügung.
Optionsnamen: Die unterstützten Optionsnamen hängen von der installierten IBM-DB2-Version und dem Typ der Ressource ab. Ein ungültiger oder nicht unterstützter Optionsname führt zur Rückgabe von false, ohne dass eine PHP-Fehlermeldung ausgegeben wird – daher sollte der Rückgabewert stets mit === false geprüft werden.
Ressourcentyp: Verbindungsoptionen (Typ 1) und Statement-Optionen (Typ 2) unterscheiden sich. Beim Aufruf von db2_set_option() wird der Typ explizit angegeben; beim Lesen ermittelt db2_get_option() den Typ automatisch anhand der übergebenen Ressource.