PDO::getAttribute

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

PDO::getAttribute — RĂ©cupĂšre un attribut d'une connexion Ă  une base de donnĂ©es

Description

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

Cette fonction retourne la valeur d'un attribut d'une connexion à une base de données. Pour récupérer les attributs PDOStatement, se référer à la fonction PDOStatement::getAttribute().

Il est à noter que quelques bases de données/drivers combinés ne supportent pas tous les attributs de connexion.

Liste de paramĂštres

attribute

Une des constantes PDO::ATTR_*. Les attributs génériques qui sont appliqués aux connexions sont les suivantes :

  • PDO::ATTR_AUTOCOMMIT
  • PDO::ATTR_CASE
  • PDO::ATTR_CLIENT_VERSION
  • PDO::ATTR_CONNECTION_STATUS
  • PDO::ATTR_DRIVER_NAME
  • PDO::ATTR_ERRMODE
  • PDO::ATTR_ORACLE_NULLS
  • PDO::ATTR_PERSISTENT
  • PDO::ATTR_PREFETCH
  • PDO::ATTR_SERVER_INFO
  • PDO::ATTR_SERVER_VERSION
  • PDO::ATTR_TIMEOUT
Certains pilotes peuvent faire usage d'attributs supplĂ©mentaires spĂ©cifiques au pilote. Il est Ă  noter que les attributs spĂ©cifiques au pilote ne doivent pas ĂȘtre utilisĂ©s avec d'autres pilotes.

Valeurs de retour

Un appel réussi retourne la valeur de l'attribut PDO demandé. Un appel qui a échoué retourne la valeur null.

Erreurs / Exceptions

La méthode PDO::getAttribute() peut générer une exception PDOException lorsque le pilote sous-jacent ne prend pas en charge l'attribute demandé.

Exemples

Exemple #1 Récupération des attributs de connexion à une base de données

<?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";
}
?>

Voir aussi

add a note

User Contributed Notes 2 notes

up
5
Phil Hilton ¶
7 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
0
Robert Parham ¶
10 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.