public static function SaveFactionData($data) { $query = 'UPDATE faction SET '; foreach ($data as $key_ => $value_) { $key = mysql_real_escape_string($key_, DB::$handler); $value = mysql_real_escape_string($value_, DB::$handler); if ($key != 'id') { if ($value == null) { $query .= "{$key}=NULL, "; } else { $query .= "{$key}='{$value}', "; } } } $id = mysql_real_escape_string($data['id'], DB::$handler); $query = substr($query, 0, strlen($query) - 2) . ' WHERE id=' . $id; if (!mysql_query($query, DB::$handler)) { if (mysql_errno() != 1452) { DB::DBdie('Error updating faction data: ' . mysql_error() . "\n"); } echo "WARNING! Saving faction data failed for integrity, setting null HQ and re-saving\n"; $faction = Factions::Find($data['id']); if ($faction) { $faction->SetHQ(null); $faction->Save(); } } return true; }