Example #1
0
 /**
  * Save the object in database and return if it's saved
  * @return boolean
  */
 public function save($widthUpdate = true)
 {
     // stop if nothing changed
     if (empty($this->changes)) {
         return false;
     }
     // get class name
     $class = get_class($this);
     // object key
     $key = $class::key;
     // prepare update query if already in database
     if ($this->{$key} && $widthUpdate) {
         $query = SQL::update($this->changes, $class::table, $key . '=:' . $key);
         $values = SQL::buildIns($this, $this->changes);
         // prepare insert query
     } else {
         $query = SQL::insert($class::columns, $class::table);
         $values = SQL::buildIns($this, $class::columns);
     }
     // add object key to values
     $values[':' . $key] = $this->{$key};
     // run statement
     $statement = new Database($query, $values);
     // get back key if it's a new object
     if (!$this->{$key}) {
         $this->{$key} = $statement->lastid();
     }
     return true;
 }