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

これは特別な処理を必要としないようです。fooを要求しているか、を要求しているかがわかっている限り、それbarを文字列としてフェッチ呼び出しに渡すだけです。とのテーブルが異なるため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 に答える