用户
 找回密码
 入住 CI 中国社区
搜索
查看: 2963|回复: 4
收起左侧

[已解决] datamapper为什么每次都查询两次且加上limit 1的限制

[复制链接]
发表于 2009-9-22 22:22:10 | 显示全部楼层 |阅读模式
我使用Datamapper 进行数据查询


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

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

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


不明白为什么第一条是怎么产生的!
 楼主| 发表于 2009-9-22 22:56:40 | 显示全部楼层
经过分析,datamapper是要查两次的,第一次去数据库读数据库结构,生成对象关系,第二次才是真正的查询结果。。

我的问题 是我用
foreach ($p->all as $post)
为什么每次都只能打印一条结果?
 楼主| 发表于 2009-9-23 08:16:57 | 显示全部楼层
问题搞定:
datamapper要求每个表里有必须有id这个列,而且必须小写,才能对所查询数据集进行遍历。
不然就只能得到最后的一个值。

搞了半夜,早上起来想到的。
发表于 2009-9-23 09:29:08 | 显示全部楼层
沒用過dm,純屬路過
发表于 2009-9-23 10:27:54 | 显示全部楼层
顶,经验贴。

本版积分规则