RedBeanPHP:Find 中的值不起作用

Posted

技术标签:

【中文标题】RedBeanPHP:Find 中的值不起作用【英文标题】:RedBeanPHP: Values in Find don't work 【发布时间】:2013-02-25 17:01:26 【问题描述】:

我使用下面的示例对表中的结果进行排序,但是 orderby 变量似乎不会影响结果的顺序。我无法访问底层 SQL 查询来查看 RedBean 正在做什么,我已经检查过 $sortorder 和 $sort 是正确的值。

$needles = R::find('needle',
    ' haystack = :haystack ORDER BY :sortorder :sort', 
        array( 
            ':sort' => $sort
            ':sortorder'=>$sortorder, 
            ':haystack'=>$haystack 
        )
    );

【问题讨论】:

这真的是您的问题吗?您有一个名为“needle”的表,其中有一列名为“haystack”? 是的,我已经设置了一张桌子,这样我就可以绕着 Redbean 转,但是 Order BY 命令没有任何效果 编辑您的帖子并显示var_dump($needles); 【参考方案1】:

参数绑定用于值,order-by子句使用列和SQL语句。

RedBeanphp 依赖于 PDO 参数绑定,这对于(除其他外)防止 SQL 注入非常有用。

这里是关于 PHP 中 PDO 参数绑定限制的讨论: Why doesn't binding parameter in ORDER BY clause order the results?

【讨论】:

【参考方案2】:

但是,您可以在之前轻松准备查询字符串:

$query = sprintf('ORDER BY %s %s LIMIT :size', $column, $sortOrder);

$items = R::find(
    'item',
    $query,
    array(
        'size' => (int) $size
    )
);

【讨论】:

以上是关于RedBeanPHP:Find 中的值不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Django dict键,for循环中的值不起作用

当指针指向数组时,为啥 operator(*) 的值不起作用?

在子组件的 beforeDestroy/Destroyed 循环中更改道具的值不起作用

保存并加载单选按钮的值不起作用c#

动态单选按钮值不起作用[重复]

Django 模型字段可调用默认值不起作用