PDO::getAttribute

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

PDO::getAttributeRuft ein Attribut einer Datenbankverbindung ab

Beschreibung

public PDO::getAttribute(int $attribute): mixed

Diese Funktion gibt den Wert eines Attributs einer Datenbankverbindung zurück. Um PDOStatement-Attribute abzurufen, siehe PDOStatement::getAttribute().

Es ist zu beachten, dass einige Kombinationen von Datenbanken und Treibern möglicherweise nicht alle Attribute der Datenbankverbindung unterstützen.

Parameter-Liste

attribute

Eine der PDO::ATTR_*-Konstanten. Die folgenden generischen Attribute gelten für Datenbankverbindungen:

Es ist zu beachten, dass einige Treiber möglicherweise zusätzliche treiberspezifische Attribute verwenden, die nicht mit anderen Treibern verwendet werden dürfen.

Rückgabewerte

Gibt bei Erfolg den Wert des angeforderten PDO-Attributs zurück. Wenn der Aufruf fehlschlägt, wird null zurückgegeben.

Fehler/Exceptions

Wenn der zugrundeliegende Treiber das angeforderte attribute nicht unterstützt, kann PDO::getAttribute() eine PDOException werfen.

Beispiele

Beispiel #1 Abrufen von Attributen der Datenbankverbindung

<?php
$conn
= new PDO('odbc:sample', 'db2inst1', 'ibmdb2');
$attributes = array(
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
"ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
"TIMEOUT"
);

foreach (
$attributes as $val) {
echo
"PDO::ATTR_$val: ";
echo
$conn->getAttribute(constant("PDO::ATTR_$val")) . "\n";
}
?>

Siehe auch

add a note add a note

User Contributed Notes 6 notes

up
5
Phil Hilton
5 years ago
Better example that handles unsupported attributes gracefully:

<?php

$conn
= new PDO( 'odbc:sample', 'db2inst1', 'ibmdb2' );
$conn->setAttribute( PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION );

$attributes = array(
   
"AUTOCOMMIT", "ERRMODE", "CASE", "CLIENT_VERSION", "CONNECTION_STATUS",
   
"ORACLE_NULLS", "PERSISTENT", "PREFETCH", "SERVER_INFO", "SERVER_VERSION",
   
"TIMEOUT"
);

foreach (
$attributes as $val ) {
    echo
"PDO::ATTR_$val: ";
    try {
        echo
$conn->getAttribute( constant( "PDO::ATTR_$val" ) ) . "\n";
    } catch (
PDOException $e ) {
        echo
$e->getMessage() . "\n";
    }
}

?>
up
2
Robert Parham
8 years ago
Oracle does not have the following attributes:

PDO::ATTR_CONNECTION_STATUS: SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute
PDO::ATTR_PREFETCH: SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute
PDO::ATTR_TIMEOUT: SQLSTATE[IM001]: Driver does not support this function: driver does not support that attribute

The rest work fine.
up
1
756567406 at qq dot com
7 years ago
Mysql on version  "5.6.29" not support "PDO::ATTR_PREFETCH"  and "PDO::ATTR_TIMEOUT"
up
-1
mfinkyr at gmail dot com
8 years ago
As of 30-Jan-2016, MariaDB on version "5.5.5-10.1.9-MariaDB" apparently  does not support: "PREFETCH" nor "TIMEOUT".
up
-1
grzegorz dot adam dot kowalski at gmail dot com
3 years ago
On PHP 7.4.4 an unsuccessful call returns FALSE, not NULL.
up
-29
peter dot hopfgartner at r3-gis dot com
14 years ago
The Oracle driver seems to not support PDO::getAttribute():

ociPHP Fatal error:  Uncaught exception 'PDOException' with message 'SQLSTATE[IM001]: Driver does not support this function: driver does not support getting attributes' in ...
To Top