Как сделать запрос на вставку NULL?
Точнее как сделать это через переменную $date_contract_finish
if ($_GET['date_contract_finish'] == ''){
$date_contract_finish = NULL;
}else{
$date_contract_finish = $_GET['date_contract_finish'];
}
$sql = "UPDATE project_registry SET
date_contract_finish = '$date_contract_finish'
WHERE id = '$id'"
В итоге вставляется пустая строка, а необходимо вставить null.
if ($_GET['date_contract_finish'] == ''){
$date_contract_finish = "NULL";
}else{
$date_contract_finish = "'" . $_GET['date_contract_finish'] ."'";
}
$sql = "UPDATE project_registry SET
date_contract_finish = $date_contract_finish
WHERE id = '$id'"
Используйте механизм prepared statements. Что PDO что mysqli корректно передают NULL через prepared statements. И, что существенно важнее, закроете открытую дыру для sql-инъекции.
$stmt = $pdo->prepare("UPDATE project_registry SET
date_contract_finish = :date_contract_finish
WHERE id = :id");
$stmt->execute([
'date_contract_finish' => empty($_GET['date_contract_finish']) ? null : $_GET['date_contract_finish'],
'id' => $id,
]);
Если вам действительно не нужно валидировать формат. Хотя скорее всего вам сперва нужно проверить, что вам передали что-то похожее на дату.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости