【发布时间】:2011-12-24 14:10:45
【问题描述】:
以下代码有问题:
$query = 'SELECT user.id as id, pet.name as name FROM user
LEFT JOIN pet on pet.user_id = user.id
WHERE user.id = 15';
$result = $pdo->query($query);
这段代码会产生类似这样的东西:
***************
| id | name |
***************
| 1 | Mikey |
***************
| 1 | Stewie |
***************
| 1 | Jessy |
***************
现在,我想使用PDO::FETCH_CLASS 来获取一个对象。但是,至少对我而言,这种方法仅适用于简单的 SELECT 语句。当您有一个 join 语句时,它将获取单个类中的所有内容。换句话说:
$user = $result->fetchAll(PDO::FETCH_CLASS, 'User');
echo $user->name; // this will print the pet name (which is weird)
因此,我想要类似的东西:
$pets = $user->pets; // an array holding Pet Objects
foreach ($pets as $pet)
echo $pet->name . "-";
这将产生:
Mikey - Stewie - Jessy -
我怎样才能做到这一点?
【问题讨论】: