1

我有一个 php 类,例如:

class bar{
    public $value;
}

class foo extends bar{
    public $value;
    public $name;
}

在数据库中:

-bar table:
value
-----
'bar value 1'
'bar value 2'

-foo table:
value        |  name
-------------+--------------
'foo value 1'| 'foo name 1'
'foo value 2'| 'foo name 2'

如何使用 PDO FETCH_CLASS 存储和获取它们?

4

2 回答 2

1

这似乎不需要特殊处理。只要您知道您是在请求 afoo还是 a bar,您只需将其作为字符串传递给 fetch 调用。由于 and 有不同的表foobar我假设您在查询需要哪个表时已经确定。

// Build a foo
$stmt->setFetchMode(PDO::FETCH_CLASS, 'foo');
$stmt->fetch()

// Or build a bar
$stmt->setFetchMode(PDO::FETCH_CLASS, 'bar');
$stmt->fetch()
于 2012-05-19T21:16:22.537 回答
0

潜在的冷静

select 'foo', name, value from footable;

PDO::FETCH_CLASSTYPE使用结果中的第一列来确定要为该行实例化的类名。

$stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE);
于 2012-05-19T21:49:11.440 回答