/** * Saves an instantiated object to its respective table as a record. * * @return boolean Whether or not object could be saved. */ public function saveObject () { try { # Validation bit $validate = new validate(metaclass::$db); $validate->exec($this); if (! $validate->valid) { $this->invalid = $validate->invalid; return false; } else { if (! metaclass::checkTable($this)) { metaclass::createTable($this->table, $this->definitions); } if (janitor::notNull($this->id)) { # Updating existing row, editing object. foreach ($this->definitions as $k => $v) { $queryStatements[$k] = janitor::cleanData($this->properties[$k], 'sql'); } $query = new query(); $query->update($this->table)->set($queryStatements)->where('id', janitor::cleanData($this->id)); if (! metaclass::$db->query($query)) { return false; } } else { # Inserting new row, creating object. foreach ($this->properties as $k => $v) { $queryFields[] = $k; $queryData[] = janitor::cleanData($v, 'sql'); } $query = new query(); $query->insert($this->table, $queryFields)->values($queryData); if (! metaclass::$db->query($query)) { return false; } } return true; } } catch (Exception $e) { trigger_error($e->getMessage(), E_USER_ERROR); } }