Ejemplo n.º 1
0
 /**
  * Updated a record based on an arbitrary WHERE clause.
  */
 public function update_by($where, $data, $skip_validation = false)
 {
     $method = __FUNCTION__;
     $this->flush_caches();
     ci()->event->trigger('database.' . $this->object . '.before.update', $method, $data, $where, $skip_validation);
     /* rule override is handled in the parent class */
     if ($skip_validation !== true) {
         $rule = $skip_validation === false ? 'insert' : $skip_validation;
         /* return false on failure data validated & filtered */
         $data = $this->validate($data, $rule);
     }
     if ($data !== false) {
         /* passed by ref */
         parent::protect_attributes($data);
         $result = $this->_database->set($data)->where($where)->update($this->table);
         $this->log_last_query();
         ci()->event->trigger('database.' . $this->object . '.after.update', $method, $data, $result);
         return $result;
     }
     return false;
 }