PDOStatement::bindColumn()で複数行取得
O/Rマッパーで
$stmt->bindColumn('columnName', $vo->$propertyName)
とやってDBから一行取得するのは問題ないんだけど、複数行取得したいときに困った。
感覚的には
$vos = array(); while($stmt->fetch(PDO::FETCH_BOUND){ $vos[] = clone $vo; } return $vos;
とやりたかったんだけど、これだと全て同じ値になってしまう。
オブジェクトのプロパティ自体が参照じゃなくても、どこかで参照で使われてたらダメってことか。
仕方がないので
$vos[] = unserialize(serialize($vo));
として逃げた。
何かいい方法は無いものか・・。