public function save() { $fieldMap = []; $function = new \ReflectionClass(get_called_class()); $table = strtolower($function->getShortName()); foreach (DB::getColumns($table) as $column) { $fieldMap[$column] = $this->{$column}; } if ($fieldMap["id"] == null) { DB::insert($table, $fieldMap); } else { $updateFields = $fieldMap; unset($updateFields["id"]); DB::update($table, $updateFields, $fieldMap["id"]); } }