Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Yii INSERT ... ON DUPLICATE UPDATE

Sie verwenden Modelle in Yii, es ist ganz einfach. Versuchen Sie, Ihr Modell dort zu laden, wo Sie doppelte Einträge vermuten. Wenn Sie den Eintrag finden, wird das Modell geladen, andernfalls wird null zurückgegeben. Wenn Ihr Modell jetzt null ist, erstellen Sie einfach ein neues Modell. rest ist Ihr normaler Code, um einen neuen Datensatz einzufügen.

//try to load model with available id i.e. unique key
$model = someModel::model()->findByPk($id);  

//now check if the model is null
if(!$model) $model = new someModel();

//Apply you new changes
$model->attributes = $attributes;

//save
$model->save();

Siehe Post-Controller-Aktualisierungsmethode im Yii-Blog der Beispiel-App. Ich könnte mit der Schreibweise von Funktionsnamen falsch liegen, sorry dafür.