Вопрос: Почему код не вносит запись в бд?

Лучший ответ:
Если немного отойти в сторону от насущных потребностей горе-кодеров исправить опечатку и бежать скорее такжекодить дальше, то вопрос довольно интересный.
В частности, возникает закономерный вопрос - почему $result содержит true, а не false, как должно быть в случае ошибки? Ведь у запроса явно неверный синтаксис? И что означают загадочные слова автора (который не в ладах не только с РНР, но и с русским языком), "Два поля в ней редактируются и я пытаюсь их сохранить, не то, что хочу"?
Ответ, для тех кто хочет научиться программировать на уровне чуть сложнее, чем складывание программ из десятка с трудом заученных операторов, довольно интересный.
Начнем с запроса. Ошибка в нем действительно есть, но не синтаксическая. Дело в том, что оператор AND может использоваться не только в операторе WHERE. Это совершенно самостоятельный логический оператор: SELECT 1 AND 1; это совершенно легитимный запрос, который вернет единицу - результат операции 1 AND 1;. 
Точно так же результат этой операции можно присвоить и полю при запросе UPDATE:UPDATE Users SET logist=1 AND 1 WHERE id=100;
А теперь посмотрим внимательно на исходный запрос. Для удобства я поставил скобки, чтобы показать, в каком порядке выполнятся операторы в запросе:UPDATE Users SET logist=('$log' AND (sum='$sum')) WHERE id='$form_id'
Что здесь важно понимать?- что в выражении sum='$sum' знак "равно" меняет свое значение и из оператора присваивания превращается в оператор сравнения. - что существует такое явление, как приоритет выполнения операторов. И у оператора AND приоритет выше, чем у = как оператора присваивания, но ниже, чем у = как оператора сравнения!- что существует такое явление, как приведение типов, и mysql по мере сил пытается привести операнды выражения AND ктакому типу, с которым оно может работать (числовому)
таким образом мы сначала приводим выражение '$log' к числовому/булеву типу (и получаем скорее всего 0)потом получаем результат выражения sum='$sum' (1 или 0 в зависимости от того, равно ли содержимое поля sum значению переменной $sum или нет), затем выполняем операцию 0 AND 0и в итоге мы присваиваем этот 0 полю log 
Каковой ноль и объясняет загадочные слова автора "я пытаюсь сохранить не то, что хочу."
Напоследок хочется рассказать о важности информирования программиста об ошибках. 
На самом деле ошибка в этом запросе все-таки есть. И звучит она как Truncated incorrect DOUBLE value: 'log'
Просто в зависимости от настроек mysql она является либо фатальной, либо просто нотисом. В случае автора это был нотис, который в пхп без специальных средств заметить невозможно.
Но если бы база данных была настроена в strict mode (и у автора вопроса было настроено правильное отображение ошибок mysqli),то ошибка бы стала фатальной, а поведение кода - более предсказуемым: значение поля не обновилось бы на непонятный нуль, а запрос бы выдал ошибку.

Худший ответ:
А в чем проблема то? Запрос UPDATE и будет возвращать true, это же не select запрос. 
$form_id = (int)$_POST['form_id'];
$sum = (int)$_POST['sum'];
Вы пишете INT перед данынми, а в запросе их как стринговые указываете
попробуйте ' ' убрать у sum
"UPDATE Users SET logist='$log' AND sum=$sum WHERE id=$form_id";