PDO::getAttribute

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

PDO::getAttribute检索数据库连接属性

描述

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

此函数返回数据库连接属性的值。要检索 PDOStatement 属性,请参阅 PDOStatement::getAttribute().

请注意,某些数据库/驱动程序组合可能不支持所有数据库连接属性。

参数

attribute

其中一个 PDO::ATTR_* 常量。适用于数据库连接的通用属性如下

  • 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

某些驱动程序可能会使用其他驱动程序特定属性。请注意,驱动程序特定属性 *绝不* 应与其他驱动程序一起使用。

返回值

成功调用将返回所请求的 PDO 属性的值。不成功的调用将返回 null

错误/异常

PDO::getAttribute() 可能会在底层驱动程序不支持所请求的 attribute 时抛出 PDOException

示例

示例 #1 检索数据库连接属性

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

参见

添加笔记

用户贡献的笔记 2 notes

Phil Hilton
6 年前
更好地处理不支持属性的示例

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

?>
Robert Parham
8 年前
Oracle 不支持以下属性

PDO::ATTR_CONNECTION_STATUS: SQLSTATE[IM001]: 驱动程序不支持此函数:驱动程序不支持该属性
PDO::ATTR_PREFETCH: SQLSTATE[IM001]: 驱动程序不支持此函数:驱动程序不支持该属性
PDO::ATTR_TIMEOUT: SQLSTATE[IM001]: 驱动程序不支持此函数:驱动程序不支持该属性

其余工作正常。
To Top