将简单查询转换为蛋糕查询?

时间:2010-06-22 12:16:18

标签: php sql cakephp

实际上我有1个查询,但我无法将其转换为CakePHP查询格式。

$result = "select 
             * from esl_userresults
           where 
             esl_userresults.esl_songID = esl_lyrics.id 
             and esl_lyrics.song_name like '%".$esl_keyword."%'" ;

当我将此查询转换为CakePHP时,会出现如下错误:

esl_userresults.esl_songID unknown column. 

3 个答案:

答案 0 :(得分:1)

您可以使用例如在蛋糕上轻松运行直接的SQL查询:  $ this-> Picture-> query(“SELECT * FROM pictures LIMIT 2;”); (cake manual

或尝试类似的东西:

    $result = Esl_Userresults->find('all' , array('conditions' => array(
             "Esl_Userresults.esl_songID" => "Esl_Lyrics.id",
             "Esl_Lyrics.song_name LIKE" => '%'.$esl_keyword.'%'),
              'recursive' => 1)
              );

..鉴于您已正确链接Esl_Userresults和Esl_Lyrics模型。

答案 1 :(得分:0)

使用可包含的行为而不是递归。它可以让您控制到单个字段级别。现在使用它,在早期阶段,将使它成为后来的第二天性。

如果您对构建条件感到困惑,请在方法调用之外构建它。

尽量避免使用双引号,除非您需要包含转义或解析数据 - 它们的速度较慢。

$conditions = array(
    'EslUserresult.esl_songID' => 'EslLyric.id',
    'EslLyric.song_name LIKE' => '%'.$esl_keyword.'%'
                   )
$this->EslUserresult->contain('EslLyric.text');
$result = $this->EslUserresult->find('all',array('conditions'=>$conditions));

答案 2 :(得分:0)

您可以使用AppModel的{​​{1}}函数来运行SQL查询。

ex:query()表格$this->ModelName->query('SELECT * FROM 这将返回一系列选定的记录。您可以传递简单查询以及复杂的连接查询。

相关问题