English | 简体中文 | 繁體中文
查询

PDOStatement::setFetchMode()函数—用法及示例

「 设置PDOStatement对象的默认获取模式 」


函数名称:PDOStatement::setFetchMode()

适用版本:PHP 5 >= 5.1.0, PHP 7, PHP 8

函数描述:这个方法设置PDOStatement对象的默认获取模式。

用法: PDOStatement::setFetchMode(int $mode): bool PDOStatement::setFetchMode(int $mode, mixed $arg1): bool PDOStatement::setFetchMode(int $mode, mixed $arg1, mixed $arg2): bool

参数:

  1. $mode(必需):指定获取模式的常量值。可以是以下之一:

    • PDO::FETCH_ASSOC:返回一个索引为列名的关联数组。
    • PDO::FETCH_BOTH:返回一个索引既为列名又为列号的关联数组。
    • PDO::FETCH_BOUND:将结果中的列值绑定到通过bindColumn()方法绑定的变量上。
    • PDO::FETCH_CLASS:返回一个指定类名的新实例,属性名对应列名。
    • PDO::FETCH_INTO:将结果中的列值绑定到已存在的对象的属性上。
    • PDO::FETCH_LAZY:创建关联数组,只有在访问时才获取数据。
    • PDO::FETCH_NUM:返回一个索引为列号的数组。
    • PDO::FETCH_OBJ:返回一个匿名对象,属性名对应列名。
  2. $arg1(可选):根据不同的获取模式,可以是额外的参数。例如,在PDO::FETCH_CLASS模式下,$arg1是要实例化的类名。

  3. $arg2(可选):根据不同的获取模式,可以是额外的参数。例如,在PDO::FETCH_INTO模式下,$arg2是要绑定到的对象。

返回值:如果成功设置了获取模式,则返回true;否则返回false。

示例:

// 创建一个PDO连接
$dsn = 'mysql:host=localhost;dbname=test';
$username = 'root';
$password = 'password';
$pdo = new PDO($dsn, $username, $password);

// 准备SQL语句并执行
$stmt = $pdo->prepare('SELECT id, name FROM users');
$stmt->execute();

// 设置获取模式为关联数组
$stmt->setFetchMode(PDO::FETCH_ASSOC);

// 使用fetch()方法获取结果
while ($row = $stmt->fetch()) {
    echo $row['id'] . ': ' . $row['name'] . '<br>';
}

// 设置获取模式为对象
$stmt->setFetchMode(PDO::FETCH_OBJ);

// 使用fetchObject()方法获取结果
while ($user = $stmt->fetchObject()) {
    echo $user->id . ': ' . $user->name . '<br>';
}

在上面的示例中,我们首先创建了一个PDO连接。然后,我们准备并执行了一个SELECT语句。接下来,我们使用setFetchMode()方法将获取模式设置为关联数组(PDO::FETCH_ASSOC),然后使用fetch()方法获取结果并打印出来。然后,我们将获取模式设置为对象(PDO::FETCH_OBJ),并使用fetchObject()方法获取结果并打印出来。

补充纠错
上一个函数: PDO_CUBRID DSN()函数
热门PHP函数
分享链接