我无法让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表:
tstamp
和val
我必须在运行PHP 5.3.3时部署我的代码的系统,因此我已经完成了补丁。
我见过其他人也描述了这个问题,但是他们使用了参数。删除所有参数并调用R::findAll('breadline');
后,我仍然可以使用它。
即使在我已设置运行PHP 5.3.3的测试服务器上使用参数时,我也无法重现此错误。
答案 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;
}