Parameters Yii参数不工作

Parameters Yii参数不工作,parameters,params,yii,Parameters,Params,Yii,我是Yii的新手,我正在使用findAllBySql函数获取一些记录 $users = User::model()->findAllBySql(" SELECT * FROM users u WHERE replace(lower(u.firstname),' ','') LIKE '%:s%' OR replace(lower(u.lastname),' ','') LIKE '%:s%'", array(':s' => $search) ); 如

我是Yii的新手,我正在使用
findAllBySql
函数获取一些记录

$users = User::model()->findAllBySql("
  SELECT * 
  FROM users u 
  WHERE replace(lower(u.firstname),' ','') LIKE '%:s%' 
     OR replace(lower(u.lastname),' ','') LIKE '%:s%'",
  array(':s' => $search)
);
如果我对:s的值进行硬编码,则函数工作正常,因此Yii似乎没有更改参数
:s
。非常感谢您的帮助

问候,,
Thijs

非常感谢,它现在可以工作了!你能解释一下为什么我的方法不起作用吗?那只是一个语法错误。是建立在这个基础上的。不需要引号,参数的形式为
:name
。基本上,只需使用
:name
,然后在那里定义它。如果没有报价的话,你的可能会奏效,但我不确定。非常感谢,现在可以了!你能解释一下为什么我的方法不起作用吗?那只是一个语法错误。是建立在这个基础上的。不需要引号,参数的形式为
:name
。基本上,只需使用
:name
,然后在那里定义它。如果没有报价的话,你的可能行得通,但我不确定。
$users = User::model()->findAllBySql("
  SELECT * 
  FROM users u 
  WHERE replace(lower(u.firstname),' ','') LIKE :s 
     OR replace(lower(u.lastname),' ','') LIKE :s",
  array(':s' => '%' . $search . '%')
);