2010-05-06 90 views
0

例如说,我都有以下DB结构mysql_fetch_object对复杂对象

表书

  • ID
  • 标题
  • ...

表作者

  • ID
  • ...

表BOOKAUTHOR

  • ID
  • BOOKID
  • AUTHORID

而在PHP我有以下反对

class Book { 
    var $id; 
    var $title; 
    var $authors = array(); 

    function Book() {} 
} 

class Author { 
    var $id; 
    var $name; 

    function Author(){} 
} 

现在,将它用mysql_fetch_object检索bookobject包括提交人作为作者对象的数组,可能吗?

如果有可能我敢肯定,你需要基本的内部联接查询

SELECT * FROM tblbook INNER JOIN tblbookauthor on ... (wel you get the point) 

这可能吗?

谢谢!

+0

我可能已经找到了一个肮脏的解决方案:在本书的构造函数中,您可以执行一个新查询来获取所有作者,并再次使用mysql_fetch_object。但是,我不想在我的模型中使用SQL或链接到我的数据访问层,所以这不是一个真正的选项......另外,我不想增加查询量,我希望它是可能的用单个查询 – Nathan 2010-05-06 15:01:12

回答

2

你在找什么是某种活动记录系统。它超出了PHP的正常范围,但存在这种功能的第三方实现。例如看看:AdoDB

+1

谢谢,经过一番搜索后我发现MyActiveRecord。这是相当古老的(我认为最后一次更新是在2007年的某个地方),而对MySql来说则是单纯的......但它非常轻便(这实际上也意味着它没有多余的额外功能)并且非常灵活。这正是我期待的! http://www.phpclasses.org/package/2990-PHP-Map-objects-to-MySQL-database-table-rows.html – Nathan 2010-05-07 09:08:25