我使用下面的示例对表中的结果进行排序,但是orderby变量似乎不会影响结果的顺序。我无法访问底层的SQL查询来查看RedBean在做什么,我已经检查了$sortorder和$sort是正确的值。
$needles = R::find('needle',
' haystack = :haystack ORDER BY :sortorder :sort',
array(
':sort' => $sort
':sortorder'=>$sortorder,
':haystack'=>$haystack
)
);
参数绑定用于值,order by子句使用列和SQL语句。
RedBeanHP依赖于PDO参数绑定,这对于防止SQL注入非常有用。
以下是关于PHP中PDO参数绑定的限制的讨论:为什么不';ORDER BY子句中的绑定参数对结果排序?
但是,您可以很容易地在之前准备查询字符串
$query = sprintf('ORDER BY %s %s LIMIT :size', $column, $sortOrder);
$items = R::find(
'item',
$query,
array(
'size' => (int) $size
)
);