【发布时间】:2023-04-06 11:17:02
【问题描述】:
我正在像这样加入 PDO:
SELECT users.*,images.*, sessions.*,social.*,videos.*,teams.*,achievements.*,_achievements_list.* FROM users LEFT JOIN images ON users.user_id=images.user_id LEFT JOIN sessions ON users.user_id=sessions.user_id LEFT JOIN social ON users.user_id=social.user_id LEFT JOIN videos ON users.user_id=videos.user_id LEFT JOIN teams ON users.user_id=teams.user_id LEFT JOIN achievements ON users.user_id=achievements.user_id LEFT JOIN _achievements_list ON achievements.achievement_id=_achievements_list.parent_id WHERE users.nickname = 'something'
问题是某些表的某些列具有相同的名称,所以在 PDO 给我返回的数组中,很多东西都被覆盖了。
我正在使用这个:
$statement = $this->pdo->prepare($query);
if ($statement->execute($param))
return $statement->fetchAll(PDO::FETCH_ASSOC);
return false;
PDO 返回一个关联数组,但我该如何做才能避免覆盖来自不同表的同名列?
【问题讨论】:
-
使用 FETCH_ALL 而不是 FETCH_ASSOC,我认为您将拥有一切(两次:一次按数字,一次按列名)
-
一周前完全相同的问题:stackoverflow.com/q/17715049/285587
-
另一种方法是对所有这些表进行不同的查询。