在cakephp中查找查询时出错

时间:2014-07-09 04:58:15

标签: php mysql cakephp

CakePHP代码

$data = $this->DropDownMultiple->find('all',array(
            'conditions'=>array('FIND_IN_SET(?,DropDownMultiple.interest)' => array('football')),
            'order'=>'created_on desc'
            )
        );

SQL查询

SELECT DropDownMultiple.*
FROM `cakephp_tutorial`.`drop_down_multiples` AS `DropDownMultiple`
WHERE FIND_IN_SET('football',`DropDownMultiple`.`interest`) =
ORDER BY `created_on` DESC

语法错误

  

语法错误或访问冲突:1064 SQL语法中出错;检查与MySQL服务器版本对应的手册,以便在第1行的“ORDER BY created_on desc”附近使用正确的语法

问题是在where条件的末尾插入=符号。为什么会这样?我哪里错了?帮助我。

1 个答案:

答案 0 :(得分:1)

为什么不在原始问题答案的评论中使用the code that I've posted

您似乎已设法删除the hidden chars that I've mentioned,至少它们不再存在于您在此处显示的代码中,但不确定您实际使用的代码。

但是,您没有使用我向您展示的格式:

$data = $this->DropDownMultiple->find('all', array(
        'conditions' => array(
            'FIND_IN_SET(?, `DropDownMultiple`.`interest`)' => 'football'
        ),
        'order' => 'created_on desc'
    )
);

请注意模型和字段名称周围的引号,最重要的是,之后的空格。 要求空间可能是CakePHP中的错误,不确定。

另请注意,无需将值包装到数组中,即使它只包含一个条目也可以。