[已解决 ]请教in操作


	$criteria->condition = " type in (:type)";

          	$criteria->params = array(':type'=>'friendlink,friendlink2'); 

代码如上,

但没成功。。

直接


$criteria->condition = " type in ('friendlink','friendlink2')";

这样写是可以的。

按第一种方法,就是不行。请问,如果按第一写法应该怎么写。。谢谢

试试





        $criteria->condition = " type in :types";

                $criteria->params = array(':types'=>"('friendlink','friendlink2')"); 



原因我觉得是 IN 是逻辑运算符号,两边应该是字段名和值,其中 “(…)” 整个算是一个值

有addInCondition() 方法干嘛不用。

condition的后面写的是sql语句,语法必须正确才行, 占位符可不会给你添加()或者%之类的语法符号。

像那样被当成字串了,所以不行


$groups=explode(",","1,2,3,4,5,6,7");

$condition=Yii::app()->db->schema->commandBuilder->createInCondition(Model::model()->tableSchema, 'id', $groups);

试试这个是否可以。

先直接写了,有时间 再看,多谢大家回复。

:rolleyes: