データベースへ保存(UPDATE)| Database

データベースへ保存(更新)するには、save() もしくは update() を使用します。
$aUser = new User(1);  // PKEY=1 のユーザ
if ($aUser->isSelected()) {
  $aUser->age = 31;   // 年齢を31に更新
  $aUser->save();
} else {
  // User Not Found
}
save()メソッドによる更新は、一度データベースから取得しモデルを生成しなければなりません。実際のコーディングにおいて常に更新対象のモデルを取得済みとは限らず、更新だけしたい(レコードの存在確認は必要ない)場合もあります。update()メソッドを使用するとそれを実現でき、更新されたかどうかは戻り値(影響のあった行数)で判断することができます。
update()メソッド には保存(更新)する値を配列で渡します。
$arUser = new User();
$arUser->setCondition(1);  // PKEY=1 のユーザ
$affectedRows = $arUser->update(array("age" => 31));

if ($affectedRows === 0) {
  // User Not Found
}
save()メソッドによる更新で、テーブルにバージョンカラムが定義されていればデータが古くなっている(既に他で変更された)場合に Sabel_Db_Exception_StaleModel 例外が投げられます。複数の管理者が同じデータを編集する可能性があるというような状況に使えるかもしれません。
$aUser = new User(1);
if ($aUser->isSelected()) {
  $aUser->age = 31;
  
  try {
    $aUser->save();
  } catch (Sabel_Db_Exception_StaleModel $e) {
    // 取得-保存間に他の人が更新してしまった
  }
}