我正在创建一个提取用户信息的表单,如果需要,用户可以更新他们的信息。 在表单上有两个日期字段,第二个字段是可选的。 因此,当用户单击"更新"并且第二个日期字段为空时,在 MSSQL 数据库中,它会将date_two字段更新为"01/01/1970"。 我正在使用带有MSSQL的PHP,因此在代码中我有:
if(isset($_POST['update']) {
$date_two = $_POST['date_two'];
if($date_two == "")
$date_two == NULL;
else
$date_two = date("Y-m-d", strtotime($date_two) );
UPDATE table SET date_two = CAST('$date_two' as DATE2);
}
结果条目为 01/01/1970,而不是 NULL。
您应该检查输入的日期值是否为空字符串(''(并管理null,因为如果您的var的值不是空的(也是一个空字符串( 更新将生成日期值
UPDATE table SET date_two = (case when '$date_two' = '' then NULL
else CAST('$date_two' as DATE2)
end);
无论如何,你不应该在你的SQL命令中使用PHP var,你在Rusk进行SQL注入..拿一个你数据库驱动程序Fior准备的命令和绑定参数..