/**
  * @param $value
  *
  * @return int
  */
 public function getLength($value)
 {
     return strlen($value);
 }
Example #2
0
 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);
     }
 }