タグ

2012年10月18日のブックマーク (1件)

  • updateAllで一気に複数レコードのUpdate - cakephperの日記(CakePHP, Laravel, PHP)

    CakePHP1.2 RC3の環境です。 CakePHPは、saveメソッドでデータを保存する際に、データの配列のキーにidがあればUpdate,なければInsertしますが、これだと複数レコードを一気にUpdateするのは大変そうです。 例えば、年齢カラムがあり、年齢が20才以上の人の飲酒可能フラグカラムにOKという文字をセットするなんていう場合、SQLとしては update hoge set inshu='OK' where age >= 20;みたいにしたいのですが、これをCakeでやろうとした場合、まずSelectで20才以上の人のidを取得して、それからforeachでsaveを繰り返す、、、、なんて考えたのですが、これじゃ非効率だよなと思ってAPIを探したら、updateAllが見つかりました。 http://api.cakephp.org/class_model.html#6

    updateAllで一気に複数レコードのUpdate - cakephperの日記(CakePHP, Laravel, PHP)
    kjirouu
    kjirouu 2012/10/18
    全行更新は $model->updateAll(array('fieldname'=>'fieldvalue'))