Example #1
0
 /**
  * Save model data.
  * If model is new PK is null - we generate INSERT SQL request.
  * If model data already exists in DB, PK > 0 - we generate UPDATE request.
  * Method return true if model data saved successfully. False if error.
  */
 public function save($validate = true)
 {
     if ($validate === true && $this->validate() === false) {
         return false;
     }
     $columns = $this->getClearColumns();
     $values = array();
     foreach ($columns as $column) {
         $values[] = $this->{$column};
     }
     $keyPosition = array_search($this->pkColumnName(), $columns);
     array_splice($columns, $keyPosition, 1);
     array_splice($values, $keyPosition, 1);
     if ((int) $this->{$this->pkColumnName()} > 0) {
         $query = new Query("update");
         $query->addTable($this->tableName());
         foreach ($columns as $key => $column) {
             $query->addField($column, $values[$key]);
         }
         $query->where->add($this->pkColumnName() . " = " . $this->{$this->pkColumnName()});
         $result = $query->exec();
     } else {
         $query = new Query("insert");
         $query->addTable($this->tableName());
         foreach ($columns as $key => $column) {
             $query->addField($column, $values[$key]);
         }
         $result = $query->exec();
         $this->ADDRESSID = $query->last_insert_id();
     }
     return $result;
 }