Yii查询生成器类查询

Yii查询生成器类查询,yii,Yii,我在yii查询生成器中有以下查询 SQL查询 select cartoon.cdate, cartoon.name from cartoon_tag, cartoon where cartoon_tag.tags like '%$tag%' and cartoon_tag.c_id=cid Yii查询生成器 $raw = Yii::app()->db->createCommand() ->select('cartoon.cdate

我在yii查询生成器中有以下查询

SQL查询

select cartoon.cdate, cartoon.name 
from cartoon_tag, cartoon
where
     cartoon_tag.tags like '%$tag%'
     and cartoon_tag.c_id=cid
Yii查询生成器

$raw = Yii::app()->db->createCommand()
            ->select('cartoon.cdate,cartoon.name')
            ->from('cartoon,cartoon_tag')
            ->where('cartoon_tag.tags like :tag AND cartoon_tag.c_id=cid', array(':tag'=>$tag))
            ->queryAll();

Sql查询提供了正确的结果,但yii查询生成器工作不正常,并且在
$tag
变量上提供了精确匹配,与查询不一样。你知道我哪里出了问题吗?

我想应该是这样的

->where('cartoon_tag.tags like :tag AND cartoon_tag.c_id=cid', array(':tag'=>'%TOM%'))
给予

 $raw = Yii::app()->db->createCommand()
->select('cartoon.cdate,cartoon.name')
->from('cartoon,cartoon_tag')
->where('cartoon_tag.tags like :tag AND cartoon_tag.c_id=cid', array(':tag'=>'%$tag%'))
->queryAll();
我找到了解决办法

$tag=strtr($tag, array('%'=>'\%', '_'=>'\_'));
$raw = Yii::app()->db->createCommand()
->select('c.cdate,c.name')
->from('cartoon c')
->join('cartoon_tag ct','ct.c_id=c.cid')
->where(array('like', 'ct.tags', '%'.$tag.'%'))
->queryAll();

现在这是工作

我试试你的答案,它不起作用。你把%TOM%放进去,这是静态的。我想把变量放进去。你试过我答案的第二部分了吗,第一部分只是一个例子