RedBeanHP:查找don中的值';不起作用


RedBeanPHP: Values in Find don't work

我使用下面的示例对表中的结果进行排序,但是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
    )
);