public static function SaveRoom($data) { $query = 'UPDATE room SET '; foreach ($data as $key_ => $value_) { $key = mysql_real_escape_string($key_, DB::$handler); $value = mysql_real_escape_string($value_, DB::$handler); if ($key != 'house' && $key != 'id' && $key != 'number') { if ($value == null) { $query .= "{$key}=NULL, "; } else { $query .= "{$key}='{$value}', "; } } } $id = mysql_real_escape_string($data['id'], DB::$handler); $house = mysql_real_escape_string($data['house'], DB::$handler); $number = mysql_real_escape_string($data['number'], DB::$handler); $tmpquery = $query . "house='{$house}' WHERE id='{$id}'"; if (!mysql_query($tmpquery, DB::$handler)) { if (mysql_errno() != 1452) { DB::DBdie("Error saving room '{$room}' of house '{$house}': " . mysql_error() . "\n"); } $tmpquery = substr($query, 0, strlen($query) - 2) . " WHERE id='{$id}'"; if (mysql_query($tmpquery, DB::$handler)) { echo "WARNING: House '{$house}' seems to have been deleted from database, removing from gamemode\n"; Houses::DestroyHouse($data['house']); return false; } else { if (mysql_errno() != 1452) { DB::DBdie("Error when checking house '{$house}' integrity in room '{$number}' saving: " . mysql_error() . "\n"); } echo "WARNING: House '{$house}' room number '{$number}' fails integrity for owner, setting nobody\n"; $house = Houses::Find($data['house']); if ($house) { $room = $house->GetRoom($data['number']); if ($room) { $house->UpdateOwnership($room, new Ownership(null, null)); } } } } return true; }