我有一个像php这样的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存储和获取它们?
答案 0 :(得分:1)
这似乎不需要特殊处理。只要您知道自己是在申请foo
还是bar
,就可以将其作为字符串传递给fetch调用。由于您有foo
和bar
的不同表格,我假设您已确定何时查询您需要的表格。
// Build a foo
$stmt->setFetchMode(PDO::FETCH_CLASS, 'foo');
$stmt->fetch()
// Or build a bar
$stmt->setFetchMode(PDO::FETCH_CLASS, 'bar');
$stmt->fetch()
答案 1 :(得分:0)
潜在的凉爽
select 'foo', name, value from footable;
PDO::FETCH_CLASSTYPE
使用结果中的第一列来确定要为该行实例化的类名。
$stmt->setFetchMode(PDO::FETCH_CLASS | PDO::FETCH_CLASSTYPE);