Example #1
0
 public function save($idInsert = false)
 {
     $this->modelFields = array_unique($this->modelFields);
     // remove duplicates
     if (isset($this->{$this->idField}) && !$idInsert) {
         // UPDATE
         foreach ($this->modelFields as $field) {
             $data[":{$field}"] = is_string($this->{$field}) ? trim($this->{$field}) : $this->{$field};
         }
         $sql = "UPDATE {$this->tableName} SET " . Database::buildSQLUpdateQuery($data) . " WHERE {$this->idField}=:{$this->idField} RETURNING {$this->idField}";
     } else {
         // Add ID Field?
         if ($idInsert) {
             $data[":{$this->idField}"] = $this->{$this->idField};
         }
         // INSERT
         foreach ($this->modelFields as $field) {
             if ($field != $this->idField) {
                 $data[":{$field}"] = is_string($this->{$field}) ? trim($this->{$field}) : $this->{$field};
             }
         }
         $sql = "INSERT INTO {$this->tableName} " . Database::buildSQLInsertQuery($data) . " RETURNING {$this->idField}";
     }
     $db = Database::getConnection();
     $query = $db->query($sql, $data);
     // We need to fetch a clean copy following a save...
     return $query && $query->rowCount() ? self::find($query->fetchColumn(0)) : false;
 }