2014-04-01 81 views
0

也許這是一個非常基本的問題,但我想使這個比較 -比較IDS Yii中

$criteria->condition='id !=$id'; 

不過,我不知道,如果它的工作

注意:id爲的id我的表中,$ id是一個我想比較

+0

如果你想使用$ id裏面的字符串使用「而不是' –

+0

但反正這不是最好的方式來做到這一點,你必須使用:param並添加條件參數,也可以使用addCondition()而不是條件屬性能夠添加更多條件 –

+0

也不要忘記使用表前綴通常「t」,以避免衝突,如果有更多列具有相同名稱的連接 - 所以使用t.id而不是id –

回答

1

已使用單引號,由於其的$ id被用作它不是它的價值
嘗試以下 -

$criteria->condition= "id != $id"; 
+0

有什麼區別在單引號和雙引號之間?我相信他們在同一位置,謝謝。我會嘗試他們 – cxl13

+0

差異:單引號打印字符串,而不會將變量(帶有美元符號)更改爲其值,但在雙引號變量中將其轉換爲其值。希望這有助於.. – Vinod

1

更準確地說:

$criteria->condition = 'id <> :ID'; 
$criteria->params = array(':ID'=>$id); 

當您使用 「PARAMS」 值$ ID是由PDO篩選。此外,使用什麼類型的變量也無關緊要。它可以是整數或字符串值。 此外,這種方式假定更多的性能和安全。

+1

提供更多信息解釋您的代碼。 –