Beispiel #1
0
 public function save($id = null)
 {
     $as = $this->autosave;
     $this->autosave = false;
     if ($this->id) {
         $id = $this->id;
     }
     if (!is_int($this->group)) {
         $group_id_sql = "INSERT INTO " . MYSQL_PREFIX . "groups (name) VALUES (:group)\n                ON DUPLICATE KEY UPDATE group_id=LAST_INSERT_ID(group_id)";
         $group_id = self::$db->prepare($group_id_sql);
         $group_id->execute(array(':group' => $this->group));
         if (!$group_id) {
             return false;
         } else {
             $group_id = self::$db->lastInsertId();
             $this->group = $group_id;
         }
     }
     if (!is_int($this->user)) {
         $user = MySQL_User::find($this->user);
         if ($user) {
             $this->user = $user->user_id;
         } else {
             return false;
         }
     }
     if (!is_int($this->friend)) {
         $friend = MySQL_User::find($this->friend);
         if ($friend) {
             $this->friend = $user->user_id;
         } else {
             return false;
         }
     }
     if ($id) {
         $savefriend_sql = "UPDATE " . MYSQL_PREFIX . "friends SET user_id=:user, friend_id=:friend, group_id=:group WHERE id=:id";
         $savefriend = self::$db->prepare($savefriend_sql);
         $state = $savefriend->execute(array(':user' => $this->user, ':friend' => $this->friend, ':group' => $this->group));
         if ($state) {
             return $id;
         } else {
             return false;
         }
     } else {
         $savefriend_sql = "INSERT INTO " . MYSQL_PREFIX . "friends (user_id, friend_id, group_id) VALUES (:user, :friend, :group)\n                ON DUPLICATE KEY UPDATE id=LAST_INSERT_ID(id), user_id=:user, friend_id=:friend, group_id=:group";
         $savefriend = self::$db->prepare($savefriend_sql);
         $state = $savefriend->execute(array(':user' => $this->user, ':friend' => $this->friend, ':group' => $this->group));
         if ($state) {
             $this->id = self::$db->lastInsertId();
             return $this->id;
         } else {
             return false;
         }
     }
 }