【问题标题】:RedBeanPHP findAll only returns last itemRedBeanPHP findAll 只返回最后一项
【发布时间】:2015-05-08 22:14:27
【问题描述】:

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

这是我的 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 是一个 MYSQL 表,有 2 个字段:
tstampval

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

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

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

【问题讨论】:

    标签: php mysql findall redbean


    【解决方案1】:

    在 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;
    }
    

    【讨论】:

    • 抱歉,来晚了。我非常忙于这个问题被问到的项目。无论如何,这解决了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 2014-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多