Beispiel #1
0
 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;
 }