我使用以下代码从MySQL数据库中获取一个book对象。
$q = $pdo->prepare('SELECT
book_id "id",
book_title "title",
book_slug "slug"
FROM book
WHERE book_id=:id');
$q->bindParam(':id', $id, PDO::PARAM_INT);
$q->execute();
$book = $q->fetchObject('Book');
图书与歌曲有多对多的关系,其中有song_id
,song_title
和song_lyrics
,因此我有一个带有book_id
和{的book_song表格{1}}。
我想把所有的歌都归属于一本书。有一种干净的方法可以在一个查询中执行此操作吗?
我在这里寻找的是如何以干净的方式编写查询,以及如何处理结果以最终得到一个具有一组Song对象而没有太多代码的Book对象。
答案 0 :(得分:1)
gillyspy建议的JOIN将是ORM如何处理这个问题,但是如果你只使用PDO,那么你必须自己处理所有的映射(以及循环,并检测何时创建一个新对象,等等) 。)在我看来,你已经超越了考虑ORM框架(例如http://www.phpactiverecord.org/)的有意义的门槛。如果你再添加一对多的关联,那么映射会让你的大脑受到伤害。