2015-04-23 34 views
1

這是我的代碼:如何在不使用主鍵的情況下更新Yii中的一行?

$model= Prices::model()->findByPk($pk); 
$model->status = 1; 
$model->update(array('status')); 

此更新我行使用主鍵,但我怎麼不Yii中的PK更新查詢。例如:

我怎樣寫這個查詢:

update mytable set mycolumn = '1' where mycolumn1 ='2' and mycolumn2 = '3' and mycolumn3 = '4' ? Thx 
+0

http://stackoverflow.com/questions/23712532/yii-framework-how-update-all-records類似這樣試試這個方式來更新你的模型。 – Jigar

回答

1

你有沒有嘗試過的第一個字符串這樣嗎?

$model= Prices::model()->findByAttributes(
    array(
     'mycolumn1' => 2, 
     'mycolumn2' => 3, 
     'mycolumn3' => 4 
    ) 
); 
$model->mycolumn = 1; 
$model->update(array('mycolumn')); 
+0

之後,我應該寫$ model-> update(); ? –

+0

你可以發佈所有腳本? thx –

+0

$ model-> save()也可以。 – crafter

0

使用UpdateAll()

Prices::model()->updateAll(
array('mycolumn'=>1),'mycolumn1=:mycolumn1 AND 
mycolumn2=:mycolumn2 AND mycolumn3=:mycolumn3', 
array(':mycolumn1'=>2,':mycolumn1'=>3,':mycolumn1'=>4) 
); 
相關問題