getAttribute()

1. 定义

该方法检索一个 PDO 语句的数据库驱动特定属性(通用属性不包括在内)。

2. 语法

PDOStatement::getAttribute ( int $attribute ) : mixed

3. 参数说明

参数 可选性 数据类型 描述
$attribute 必需 整型或常量 特定属性名称

其中,$attribute仅有一个可选值:PDO::ATTR_CURSOR_NAME。这是FirebirdODBC驱动的特定属性,获取UPDATE ... WHERE CURRENT OF的游标名称。

注:也就是说,该方法暂不支持其他数据库驱动。在不支持该方法的数据库驱动上使用该方法将发出一个警告(warning)。

4. 示例

<?php

// PDOStatement::getAttribute()
// 检索一个 PDO 语句的数据库驱动特定属性(通用属性不包括在内)

try {
    $config = ['driver' => 'mysql', 'host' => 'localhost', 'dbname' => 'test', 'charset' => 'utf8', 'user' => 'root', 'pwd' => 'mysql'];
    $dsn = sprintf('%s:host=%s;dbname=%s;charset=%s', $config['driver'], $config['host'], $config['dbname'], $config['charset']);
    $conn = new PDO($dsn, $config['user'], $config['pwd']);
} catch (PDOException $e) {
    error_log($e->getMessage());
    echo $e->getMessage();
}

try {
    $sql = 'SELECT * FROM `movie` LIMIT 1';
    $stmt = $conn->prepare($sql);
    $res = $stmt->getAttribute(1);// Warning: PDOStatement::getAttribute(): SQLSTATE[IM001]: Driver does not support this function: This driver doesn't support getting attributes
} catch (Exception $e) {
    echo "发生了错误:", $e->getMessage();
}

5. 延展阅读