Php 比较Yii中的id

Php 比较Yii中的id,php,yii,Php,Yii,也许这是一个非常基本的问题,但我想做一个比较 $criteria->condition='id !=$id'; 然而,我不确定它是否有效 注意:id是我的表的id,$id是我要比较的,您使用了单引号,因为$id不是它的值,所以使用了单引号 试着跟随- $criteria->condition= "id != $id"; 更准确地说: $criteria->condition = 'id <> :ID'; $criteria->params = array(

也许这是一个非常基本的问题,但我想做一个比较

$criteria->condition='id !=$id';
然而,我不确定它是否有效


注意:id是我的表的id,$id是我要比较的,

您使用了单引号,因为$id不是它的值,所以使用了单引号
试着跟随-

$criteria->condition= "id != $id";
更准确地说:

$criteria->condition = 'id <> :ID';
$criteria->params = array(':ID'=>$id);
$criteria->condition='id:id';
$criteria->params=array(':ID'=>$ID);
使用“params”时,值$id由PDO屏蔽。此外,使用哪种类型的变量也无关紧要。它可以是整数或字符串值。
同样,这种方法假定了更高的性能和安全性。

单引号和双引号之间的区别是什么?我相信他们是一样的,谢谢。我将尝试以下区别:单引号按原样打印字符串,而不将变量(带美元符号)更改为其值,但在双引号中,变量将转换为其值。希望这有帮助。如果您想在字符串中使用$id,请使用“而不是”,但无论如何,这不是最好的方法,您必须使用:param和add criteria params,还可以使用addCondition()而不是condition属性来添加更多条件,所以不要忘记通常使用表前缀“t“为了避免在联接中有更多同名列时发生冲突,请使用t.id,如果只是id,则使用t.id。这样您就可以使用方法compare。谢谢,我会尝试的,谢谢您的时间