Хорошо, я понятия не имею, что здесь происходит. У меня есть запрос на обновление, что два из трех полей работают точно так, как мне нужно, но независимо от того, сколько я предварительно отформатирую значение для него, оно все равно всегда отображается в кавычках 'NULL' в моем дамп-запросе, а не NULL как показано ниже.
Это то, как я предварительно форматирую значения моих полей;
$val1 = (is_null($item1Val)) ? 'NULL' : "'" . stripslashes(json_encode($item1Val)) . "'";
$val2 = (is_null($item2Val)) ? 'NULL' : "'" . stripslashes(json_encode($item2Val)) . "'";
$val3 = (is_null($item3Val)) ? 'NULL' : "'" . trim($item3Val) . "'";
Это строка запроса на обновление, которую я использую в своем коде. Я также пытался использовать конкатенацию строк, и это, похоже, приводит к той же самой проблеме;
$dml = "UPDATE table SET
field_1 = $val1,
field_2 = $val2,
field_3 = $val3,
WHERE id = $id;";
ЭТО, однако, так выглядит, когда я выкидываю запрос;
UPDATE table SET
field_1 = NULL,
field_2 = NULL,
field_3 = 'NULL',
WHERE id = $id;
Я сбросил значения, которые поступают как необработанные данные, и каждое из них приходит как истинные значения NULL, что именно то, что я хочу. Итак, если они все входят как истинные значения NULL, то как последняя переменная превращается в значение кавычки, а не первые две, работающие точно так, как нужно? Я понятия не имею, чего мне здесь не хватает.
Это сводит меня с ума!