PHP Conference Nagoya 2025

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 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, référez-vous à la fonction PDOStatement::getAttribute().

Notez 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. Notez 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
6 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
9 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.
To Top