lanvige 发表于 2009-9-22 22:22:10

datamapper为什么每次都查询两次且加上limit 1的限制

我使用Datamapper 进行数据查询


$p = new Post();
$p->get();
foreach ($p->all as $post)
{
    echo '<p>' . $post->ID . ' belongs to Group ';
}

可是每次都只能查询出一条结果,查询SQL显示两条

DATABASE:cms   QUERIES: 2   0.0005SELECT * FROM `posts` LIMIT 1 0.0006SELECT *
FROM (`posts`)

不明白为什么第一条是怎么产生的!

lanvige 发表于 2009-9-22 22:56:40

经过分析,datamapper是要查两次的,第一次去数据库读数据库结构,生成对象关系,第二次才是真正的查询结果。。

我的问题 是我用
foreach ($p->all as $post)
为什么每次都只能打印一条结果?

lanvige 发表于 2009-9-23 08:16:57

问题搞定:
datamapper要求每个表里有必须有id这个列,而且必须小写,才能对所查询数据集进行遍历。
不然就只能得到最后的一个值。

搞了半夜,早上起来想到的。

visvoy 发表于 2009-9-23 09:29:08

沒用過dm,純屬路過

Hex 发表于 2009-9-23 10:27:54

顶,经验贴。
页: [1]
查看完整版本: datamapper为什么每次都查询两次且加上limit 1的限制