/** * @param $value * * @return int */ public function getLength($value) { return strlen($value); }
public function update() { if (!$this->id) { $this->save(); return; } if (!self::$__updateStmt || $this->__database != self::$__defaultDatabase) { // Build UPDATE query $query = "UPDATE `" . self::TABLE . "` SET "; $parameters = []; foreach ($this as $field => $value) { if ($field[0] == "_") { continue; } $query .= "`{$field}` = ?,"; $parameters[] = $value; } foreach (self::$__foreignKeys as $key => $class) { $query .= "`{$key}` = ?,"; $parameters[] = isset($this->__foreignKeyValues[$key]) ? is_object($this->__foreignKeyValues[$key]) ? $this->__foreignKeyValues[$key]->id : $this->__foreignKeyValues[$key] : null; } // Remove trailing comma $query[strlen($query) - 1] = " "; $query .= "WHERE `id` = ?"; $parameters[] = $this->id; $stmt = $this->__database->prepare($query); $stmt->execute($parameters); if ($this->__database == self::$__defaultDatabase) { self::$__updateStmt = $stmt; } } else { $parameters = []; foreach ($this as $field => $value) { if ($field[0] == "_") { continue; } $parameters[] = $value; } foreach (self::$__foreignKeys as $key => $class) { $parameters[] = isset($this->__foreignKeyValues[$key]) ? is_object($this->__foreignKeyValues[$key]) ? $this->__foreignKeyValues[$key]->id : $this->__foreignKeyValues[$key] : null; } $parameters[] = $this->id; self::$__updateStmt->execute($parameters); } }