RedBeanPHP findAll仅返回最后一项

时间:2015-05-08 22:14:27

标签: php mysql findall redbean

我无法让findAll函数返回多于结果查询的最后一行。我在PHP脚本上设置了R::debug( TRUE ),它清楚地表明返回的数据结果集中有4个结果。输出的查询按预期工作,返回4行,当我直接输入MySQL时。

这是我的PHP代码:

<?php
require 'include/rb.php';
include 'include/config.php';
R::debug( TRUE );
echo 'test4<br>';
$returnpeople = R::findAll('breadline');

echo '<br>';
foreach ($returnpeople as $key => $bean) {

 echo $bean->tstamp.'<br>';

}
print_r($returnpeople );

?>

breadline是一个包含2个字段的MYSQL表:
tstampval

我必须在运行PHP 5.3.3时部署我的代码的系统,因此我已经完成了补丁。

我见过其他人也描述了这个问题,但是他们使用了参数。删除所有参数并调用R::findAll('breadline');后,我仍然可以使用它。

即使在我已设置运行PHP 5.3.3的测试服务器上使用参数时,我也无法重现此错误。

1 个答案:

答案 0 :(得分:0)

在Redbean website上,有一些要求:

  

现有架构

     

RedBeanPHP旨在随时随地构建您的数据库。之后,您可以手动更改架构以满足您的需求(更改列类型,添加其他索引)。请记住,RedBeanPHP的目的是拥有一个简单,无配置的ORM。只有尊重某些惯例才能实现这一目标。

我认为您的表格必须包含id字段,因为在convertToBeans方法中,使用了id

public function convertToBeans( $type, $rows )
{
    $collection                  = array();
    $this->stash[$this->nesting] = array();
    foreach ( $rows as $row ) {
        $id                               = $row['id'];
        $this->stash[$this->nesting][$id] = $row;
        $collection[$id]                  = $this->load( $type, $id );
    }
    $this->stash[$this->nesting] = NULL;

    return $collection;
}