RedBeanPHP fetchAll 只返回一行

RedBeanPHP fetchAll only returning one row

我正在调用数据库以获取一些数据。我已经尝试了 SQL 中的请求,它工作正常。我已经使用 PDO 对查询进行了编码,并且工作正常。但是使用具有相同查询的 RedBeanPHP 只有 returns 个结果。

$app->get('/shoutbox/new/:msgid', function ($msgid) use ($app) {
    $messages = R::findAll('shoutbox_message', ' WHERE message_id > ? LIMIT 10', array($msgid));
    $app->response()->header('Content-Type', 'application/json');
    var_dump($messages);
    echo json_encode(R::exportAll($messages));
});

我已使用 var_dump($messages) 验证只有一条消息被返回。

我在这里发现了类似的问题,但是 OP 没有解释如何解决它:sql query using redbeans php

有什么建议吗?

您正在使用 R::findAll,当您不想添加任何条件时使用。但是,您的查询中有 WHERE 条件。您想改用 R::find 方法。

我不确定您的 $msgid 参数中传递的值是什么,或者结果 $messages 应该包含什么,但查询应该是这样的。 $messages = R::find('shoutbox_message', ' message_id = ? LIMIT 10', array($msgid) );