Я делаю вызов в базу данных, чтобы получить некоторые данные. Я пробовал запрос в SQL, и он отлично работает. Я закодировал запрос с помощью PDO, и он отлично работает. Но использование RedBeanPHP с тем же запросом возвращает только один результат.
$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)
чтобы убедиться, что возвращается только одно сообщение.
Я нашел подобную проблему здесь, но ОП решил ее, не объяснив, как: SQL-запрос с использованием RedBeans PHP
Любой совет?
Ты используешь R::findAll
который используется, когда вы не хотите добавлять какие-либо условия. Однако в вашем запросе есть условие WHERE. Вы хотите использовать R::find
метод вместо.
Я не уверен, какое значение передается в параметре $ msgid или что должны содержать полученные $ сообщения, но запрос будет выглядеть следующим образом.
$messages = R::find('shoutbox_message', ' message_id = ? LIMIT 10', array($msgid) );
Других решений пока нет …