PDO列名称出现在fetchAll之后的类中

时间:2013-10-13 15:52:16

标签: php mysql pdo fetchall

我有一个id,关键字和值的类。 我正在从名为Setting的表中获取数据到使用

类设置
if ($stmt->execute()) {
  $o = $stmt->fetchAll(PDO::FETCH_CLASS | PDO::FETCH_PROPS_LATE, "Setting", array('id', 'keyword','value'));
}

当我查看$ o的内容时,我看到以下内容

Array ( [0] => Setting Object ( [id] => id [keyword] => keyword [value] => value [Id] => 1 [Keyword] => AdminMail [Value] => yahoo@yahoo.com ))

我的班级看起来像这样

class Setting {
var $id;
var $keyword;
var $value;

function __construct($id,$ke,$va) {
    $this->id = $id;
    $this->keyword = $ke;
    $this->value = $va;
}

public function getKeyword() {
    return $this->keyword;
}

public function getValue() {
    return $this->value;
}
}

我希望$ o-> getValue返回yahoo@yahoo.com,但它会返回值。

有人可以告诉我为什么“[id] => id [keyword] => keyword [value] => value”出现在我的表的实际输出之前?

1 个答案:

答案 0 :(得分:0)

我不知道,为什么这种棘手的语法糖如此吸引人 它是如何比简单,简单和可读的代码更好:

function __construct($init) {
    $this->id      = $init['id'];
    $this->keyword = $init['ke'];
    $this->value   = $init['va'];
}
...
$stmt->execute();
$o = new Settings($stmt->fetchAll());